我正在编写自定义TCP服务器和客户端,进行大量请求(确切地说是60,000个请求)后,我开始遇到10048号套接字错误,这意味着“地址已经在使用” (should mean).
除非我暂停进程大约2至3分钟然后重新开始,否则该错误会持续发生,并且在重新启动后不久就会再次发生相同的错误。如果我暂停客户端进程并重新启动服务器进程,则仍然会在客户端上收到相同的错误。因此,这是完全客户端问题。
但这没有道理,通常只有在绑定时才会出现此错误,并且此错误发生在客户端而不是服务端。可能的原因是什么?
以下是我的初始化摘录:
此外,其他所有功能似乎都正常工作(包括来回发送所需的时间),当使用
我初始化有问题吗?还有什么可能导致客户端出现此错误?
除非我暂停进程大约2至3分钟然后重新开始,否则该错误会持续发生,并且在重新启动后不久就会再次发生相同的错误。如果我暂停客户端进程并重新启动服务器进程,则仍然会在客户端上收到相同的错误。因此,这是完全客户端问题。
但这没有道理,通常只有在绑定时才会出现此错误,并且此错误发生在客户端而不是服务端。可能的原因是什么?
以下是我的初始化摘录:
TcpClient client = new TcpClient();
client.Connect("XXXXX -- some ip", 25000);
client.NoDelay = true;
NetworkStream clientStream = client.GetStream();
此外,其他所有功能似乎都正常工作(包括来回发送所需的时间),当使用
127.0.0.1
时完美运行,但将其放在另一台局域网计算机上时,我开始遇到10048错误。我初始化有问题吗?还有什么可能导致客户端出现此错误?
client.LingerState=new LingerOption(false,0);
并使用 netstat,你是对的,我有大量处于 TIME_WAIT 状态的连接。 - Earlz