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
从这里找到解决方法,
在socket的Receive方法前必须明确指明其为阻塞模式
即添加下面一句
client.Blocking = true;//client为一socket
看来这真的是一个bug
记录在这里,备查!

版权声明:本文为yunhaiC原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。