为什么TCP Socket.Receive不阻塞,直接返回0字节

ckl881003 ckl881003 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
使用.NET 4.5 WIN7系统
很奇怪,在调试的时候发现一个接收数据的线程里面Receive 一直返回0字节造成100%CPU占用率
代码片段:

public void Receive()
{
byte[] recByteBuffer = new byte[1024];
int sindex = 0,nindex = 0;
int rdLength = 0;
uint dataLength = 0;

//socket.ReceiveTimeout = 5000;
while(true)
{
try
{
rdLength = socket.Receive(recByteBuffer);
if (rdLength == 0)
{
//if (stRemote.Connected == false)
// break; //没有接收到数据
//else
Thread.Sleep(5);
continue;
}

直接返回0,不是应该没数据0字节不返回阻塞的嘛?
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
ckl881003
C# 111,129 成员 642,539 内容