如何在同一个套接字上托管WCF服务和TCP服务器?

Rel*_*lla 5 c# sockets wcf tcp servicehost

Tooday我使用ServiceHost来托管WCF服务.

我想在我的WCF服务附近托管我自己的TCP程序,用于直接套接字操作(比如某种广播TCP流的留置权)

我需要控制URL名称空间(所以我可以让我的客户端使用一些不错的URL直接将TCP流发送到我的服务中,例如example.com:port/myserver/stream?id=1或example.com:port/myserver/stream?id =任何东西,所以我不会在1个socket的1个客户端的想法中受到困扰,我真的希望将我的WCF服务保留在与我自己的服务器相同的端口上,或者它是什么样的能够调用www.example.com:port/myWCF/stream?id=222 ...我希望它的任何端口上工作 - 不仅80)

任何人都可以帮我这个吗?

我现在只使用WCF.我不喜欢它是如何工作的.这是为什么我要开始迁移以清除TCP =)的众多原因之一

我不能使用net-tcp绑定或任何其他酷WS-*绑定(今天我使用最简单的绑定,以便我的客户像Flash,AJAX等轻松连接到我).

我需要快速简单地实现连接协议,就像我在套接字中创建的那样,实时用于数据传输.

那么......有什么想法?请 - 我需要帮助.

Aar*_*nLS 0

如果 WCF 的问题是性能,那么您应该尝试二进制网络 TCP 绑定来消除 XML 序列化以提高性能。

一些高流量应用程序(例如实时游戏)使用 UDP 进行大部分通信,因为它突破了协议。使用 TCP,您可以获得内置的排序和可靠性,但这是以性能为代价的,因为它会隐式延迟数据包以等待无序数据包,以便它可以按正确的顺序将它们传递给应用程序,或等待丢失的数据包被怨恨。相反,您可以使用 UDP 并实现自己的方案来验证不如 TCP 严格的数据。

WCF 有可用的 UDP 选项,或者您也可以实现自己的选项。WCF只不过是一个消息泵,您可以用任何您想要的内容替换不同的步骤。