我有几个“黑盒”将数据发送到确定的 IP 和端口,我不能指定其他任何东西(只是 IP 和端口)......
我的服务器应该正在侦听该端口并捕获要发送到 MSMQ 的信息...
如何设置 WCF 服务器来监听该端口?
谢谢!
我会编写一个普通的 Windows 服务来监听数据。
使用TCPListener或类似的类
然后将 WCF 作为 Windows 服务调用以写入消息队列的单独服务插入,这只是配置问题。
[ServiceContract]
public interface IDaraWriterService
{
[OperationContract]
public void WriteDataToQueue(WriteDataToQueueMessage theDataEncapsulatedInAMessage)
{
}
}
顺便说一句,您的 Windows 服务可能会直接写入队列。
有关消息队列的更多信息,请参见此处。http://msdn.microsoft.com/en-us/library/ms811053.aspx
如果您可以控制将数据推送到 IP 地址/端口的内容,那么可以,您可以使用 WCF。不幸的是,如果没有某种合同/绑定来指定“服务器”和“客户端”通信的方式,WCF 不会对您有太大帮助。
因此,如果您无法控制客户端代码,则需要“滚动自己的”侦听器。正如@Rob Stevenson-Leggett 建议的那样:TcpListener
编辑:
谢谢 Randolpho... 所以,我将开发一个带有侦听器的 Windows 服务并将消息添加到 MSMQ。在其他人手中,我需要一个模块来读取队列(MSMQ)并将其添加到数据库中......那个模块可能在 WCF 中?你认为呢?
是的。WCF 提供MsmqIntegrationBinding用于在任一端与 MSMQ 进行通信。
这是一个很好的教程: