C# 无法立即完成一个非阻挡性套接字操作

今天使用C#的socket做一个监听端,同步socket,超时设置为5秒

recv = client.Receive(data);
 client.ReceiveTimeout = 5000;
运行过程中会出现异常:
无法立即完成一个非阻挡性套接字操作
socket默认情况下即为阻塞模式,见MSDN
ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/fxref_system/html/44af69ac-dbe9-ad42-522e-4128bafe60e4.htm
网络搜索后从 http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/726b9516-0ccd-40e1-829f-2fd5998904d4
从这里找到解决方法,
在socket的Receive方法前必须明确指明其为阻塞模式
即添加下面一句
client.Blocking = true;//client为一socket
看来这真的是一个bug
记录在这里,备查!

你可能感兴趣的:(C/C++/C#/dotnet,c#,socket,网络)