gpt4 book ai didi

c# - 套接字接收超时

转载 作者:太空狗 更新时间:2023-10-29 20:11:11 25 4
gpt4 key购买 nike

我已将 ReceiveTimout 指定为 40 毫秒。但是接收超时需要超过500ms。我正在使用秒表来计算所用时间。

代码如下所示。

Socket TCPSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
TCPSocket.ReceiveTimeout = 40;

try
{
TCPSocket.Receive(Buffer);

} catch(SocketException e) { }

最佳答案

您可以根据需要在套接字上同步轮询任何超时时间。如果 Poll() 返回 true,您可以确定可以调用不会阻塞的 Receive()

Socket s;
// ...
// Poll the socket for reception with a 10 ms timeout.
if (s.Poll(10000, SelectMode.SelectRead))
{
s.Receive(); // This call will not block
}
else
{
// Timed out
}

我建议您阅读 Stevens 的 UNIX 网络编程第 6 章和第 16 章,以获取有关非阻塞套接字用法的更深入的信息。尽管这本书的名字中有 UNIX,但总体套接字体系结构在 UNIX 和 Windows(和 .net)中基本相同

关于c# - 套接字接收超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9327326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com