停止服务器端超时

本文关键字:超时 服务器端 | 更新日期: 2023-09-27 18:27:00

在我的客户端中,我完成了:

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

我在服务器端做这件事也得到了分数,我试着在服务器上的TCPListener上使用intellisense进行检查,但我什么都找不到。

有什么想法吗?

停止服务器端超时

在服务器端,您使用的是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使用了不同的类型。