停止超时服务器端?

时间:2012-03-07 18:51:38

标签: c# timeout tcplistener

在我的客户中,我做到了:

TcpClient client = new TcpClient();
client.ReceiveTimeout = 1000;
client.SendTimeout = 1000;

我也得到服务器端的标记,我尝试在我的服务器上的TCPListener上使用intellisense进行检查,但我找不到任何东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

在服务器端,您使用的TcpListener只不过是SocketTcpClient工厂。

在服务器代码中的某处,您会看到AcceptTcpClientAcceptSocket(或其异步对应方)。类似的东西:

TcpClient clientConn = listener.AcceptTcpClient();

现在,您的问题代码片段中的client等效。所以要设置超时:

clientConn.ReceiveTimeout = 1000;
clientConn.SendTimeout = 1000;

你可以使用Socket实例做类似的事情(如果是这样的话我可以挖掘一些代码),但一般来说它几乎是一样的。

<强>更新

由于在服务器端您使用AcceptSocket而不是AcceptTcpClient,因此您可以使用以下内容:

Socket clientConn = listener.AcceptSocket();
clientConn.ReceiveTimeout = 1000;
clientConn.SendTimeout = 1000;

它基本相同,仅为clientConn使用不同的类型。