关于C#Socket的Connect连接失败后等待时间过长问题
问题根结
解决问题
问题根结
在客户端连接服务器时,未连接上服务器时,代码会卡在socket.Connect( );
这一行中。大约会卡住20到30秒,甚至更多。解决问题
好像是因为C#里没有关于设置Connect超时的时间。
所以将socket.Connect( )删掉,换成以下异步方式代码//创建负责通信的Socket
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Parse("192.168.255.1");//定义IP地址和端口号
IPEndPoint point = new IPEndPoint(ip, 10000);//获得要连接的远程服务器应用程序的IP地址和端口号
//socket.Connect(point);//异步方式进行连接的远程服务器的IP地址和端口号
IAsyncResult result = socket.BeginConnect(point, null, null);result.AsyncWaitHandle.WaitOne(500);
//创建负责通信的Socket
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ip = IPAddress.Parse("192.168.255.1");//定义IP地址和端口号
IPEndPoint point = new IPEndPoint(ip, 10000);//获得要连接的远程服务器应用程序的IP地址和端口号
//socket.Connect(point);//异步方式进行连接的远程服务器的IP地址和端口号
IAsyncResult result = socket.BeginConnect(point, null, null);result.AsyncWaitHandle.WaitOne(500);
可以设置具体的时间来控制其等待的时间,单位:毫秒。
关于C#Socket连接失败后等待时间过长问题
最新推荐文章于 2025-03-16 17:38:29 发布