首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何建立/模拟持久TCP连接?

如何建立/模拟持久TCP连接?
EN

Stack Overflow用户
提问于 2011-08-13 20:16:58
回答 2查看 2.9K关注 0票数 7

看起来WCF TCP连接不是持久的。第一次ping回复需要一段时间,但后续过程所需时间较短。过了一会儿,-another重新连接需要很长时间吗?

SERVER>从net.tcp://0.0.0.0:999开始 创建到net.tcp://localhost:999 //的CLIENT>连接--不是真正的连接,可以连接 在1s163ms //第一个连接中的CLIENT> Ping应答 CLIENT>平安回复为22毫秒//已连接 26毫秒内CLIENT>平答 CLIENT>平安回复24毫秒 CLIENT> Ping回复:325 Re//重新连接 CLIENT>平在19 in的回复 CLIENT>平接767 Re//重新连接

如果为真,则tcp连接在断开之前的空闲时间值是多少?我需要保持联系。

更新修改后的代码:

代码语言:javascript
复制
NetTcpBinding tcpBind = new NetTcpBinding();
tcpBind.ReliableSession.Enabled = true;
tcpBind.ReliableSession.Ordered = true;
tcpBind.ReliableSession.InactivityTimeout = TimeSpan.FromMinutes(10);

ServiceHost svh = new ServiceHost(typeof(ServiceImplementation));
svh.AddServiceEndpoint(
    typeof(WCFSimple.Contract.IService),
    //new NetTcpBinding(),
    tcpBind,
    String.Format("net.tcp://{0}:{1}", ip, port));
svh.Open();

现在我又犯了一个错误:

此端点不支持操作http://tempuri.org/IService/Pong。此端点只处理2005年2月的WS-ReliableMessaging消息。

Update I只修改了服务器端,并导致了错误。然后我将客户端的TCP修改为可靠的消息传递。

EN

回答 2

Stack Overflow用户

发布于 2011-08-22 05:07:23

我不认为Ping是测试TCP连接的好工具。因为Ping使用ICMP作为它的底层协议,而不是TCP。

我建议您创建一个WCF客户端,连接到服务,然后通过一些网络嗅探工具检查TCP连接,或者使用netstat进行快速检查。

票数 1
EN

Stack Overflow用户

发布于 2011-08-22 07:43:56

通常,WCF连接是短暂的,尽管后台有一些连接池。

使用net.tcp作为传输,持久(长期)连接是可能的。您发布的代码是实现这一目标的一种方法。

有关更多信息和一些替代方案,请访问您需要了解的是有关单向呼叫、回调和事件的信息。,这是2006年10月的一篇MSDN杂志文章。

还可以使用IsInitiatingIsTerminating属性中的OperationContract属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7053000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档