嗨,我想创建一个windows服务,它可以与连接到台式PC的USB硬件的低速连接对话。
我希望windows服务的方法可以从该PC上的其他软件以及LAN上的其他PC/ Unix客户端调用。
考虑到数据的低速特性(只是偶尔请求USB设备的进度)-使用默认的http WCF绑定是否有意义,或者我是否应该考虑TCP绑定或套接字?
非常感谢
发布于 2011-02-02 04:38:27
也许您可以创建一个httplistener并拦截对它的请求,以发送或接收数据。
这种解决方案的强大之处在于,http几乎是通用的,任何其他计算机都可以向您的服务发送请求。
出于同样的原因,您也可以编辑或使用reason风格的wcf服务(但客户端必须处理xml)
发布于 2011-02-02 04:43:05
我倾向于使用net tcp绑定,因为它是为跨机器通信而设计和优化的,使用二进制消息编码。http将更加灵活,并且可以跨客户端进行评估。您甚至可以在没有特殊客户端设置的情况下调用您的服务。
发布于 2011-02-03 06:38:16
为什么要把自己限制在一个绑定上呢?您可以轻松地公开多个端点,局域网上的其他windows客户端的NetTcp端点(比通过HTTP协议通信更快);网络上的非windows客户端的BasicHttp端点;对于同一台计算机上的其他服务,您甚至可以公开速度甚至超过NetTcp的NamedPipes端点。这就是WCF的美妙之处!只需构建一次服务,就可以随心所欲地公开:-D
不过请注意,如果您选择使用IIS7托管您的服务,那么无论您使用NamedPipes/NetTcp/BasicHttp端点,都不会有任何性能差异,因为任何东西都必须通过HTTP。
https://stackoverflow.com/questions/4867640
复制相似问题