关于C#中socket通信异常的超时时间问题
由于工作需求经常会测试socks5或http代理IP是否可用,在没有自己编写代理程序之前一直使用的QQ上自带
的测试软件,但是一旦IP和端口号不通的情况下,就会导致长时间的卡死现象,只有关闭QQ再次打开才能重新进行测试,于是今天了解一下原理记下来作为笔记。
QQ测试如图:
在网上找到了原因,socket通信的超时时间无法改变,在C#中就是Connect函数的参数,是系统内核决定的,而较为简单的方法就是用一下代码代替Connect:
IAsyncResult connResult = s.BeginConnect(proxyIP, proxyport, null, null);
connResult.AsyncWaitHandle.WaitOne(2000, true); //等待2秒
if (!connResult.IsCompleted)
{