哪里有错误

shrockey 2009-09-16 02:37:00
服务器端socket 已close了
将客户端却收到消息,且全是空的
为什么


while (1 == 1)
{

if (c != null && c.Connected == true)
{
///接受从服务器返回的信息
string recvStr = "";
byte[] recvBytes = new byte[1024];
int bytes;
bytes = c.Receive(recvBytes, recvBytes.Length, 0);//从服务器端接受返回信息
recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
Console.WriteLine("client get message:{0}", recvStr);//显示服务器返回信息

}
else
goto exit;
}
exit:
c.Close();
...全文
54 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigmingming 2009-09-16
  • 打赏
  • 举报
回复
同意楼上
qldsrx 2009-09-16
  • 打赏
  • 举报
回复
没有错误,收到0字节消息就代表服务器端的Socket已经关闭,所以你应该先设置一个接收超时时间,超时后客户端关闭socket,另外判断每次Receive后的接收字节长度,如果服务器端没有关闭Socket,则长度不会为0,会一直等待到超时为止,否则就立刻返回,收到0字节,所以0字节就代表服务器端关闭了连接,那么你自然也得关闭客户端的连接啦。

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧