如何制作/模拟持久TCP连接?

Nim*_*oud 6 .net c# wcf

看起来WCF TCP连接不是持久的.首次ping回复需要一段时间,但后续进程需要较少的时间.过了一段时间又需要很长时间 - 另一个重新连接?

SERVER>在net.tcp上启动://0.0.0.0:999

客户端>创建到net.tcp的连接:// localhost:999 //不是真正的连接,准备连接

客户端> 1s163ms内的Ping回复//第一次连接

客户端> 22毫秒Ping回复//已连接

客户端> 26ms的Ping回复

客户端> 24ms内Ping回复

客户端> 325毫秒Ping回复//重新连接

客户端> 19ms的Ping回复

客户端> 767ms内的Ping回复//重新连接

如果是的话,tcp连接断开之前的空闲时间值是多少?我需要保持连接活着.

更新修改代码:

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();
Run Code Online (Sandbox Code Playgroud)

现在我又出了一个错误:

此端点不支持该操作http://tempuri.org/IService/Pong.此端点仅处理WS-ReliableMessaging二月2005消息.

更新我只修改了服务器端,它导致了错误.然后我将客户端的TCP修改为可靠的消息传递.

Eri*_*Fan 1

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

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