我写的服务器程序中Socket.Receive接受问题?

xiamin 2011-11-11 09:54:44
Socket mySocket = myListener.AcceptSocket() ;
Console.WriteLine ("Socket Type " +mySocket.SocketType );
if(mySocket.Connected)
{
Console.WriteLine("\nClient Connected!!\n============\nCLient IP {0}\n",mySocket.RemoteEndPoint) ;
Byte[] bReceive = new Byte[1024] ;
string sBuffer="";
//循环读取,直到接收完所有数据
while (true)
{
int i = mySocket.Receive(bReceive, bReceive.Length, 0); if (i <= 0)//读取完成后退出循环
break;
//转换成字符串类型
sBuffer += Encoding.ASCII.GetString(bReceive,0,i);

}
而且红色的mySocket.Receive(bReceive, bReceive.Length, 0);出现异常
不写循环时为什么空行后的数据收不到
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lucenedonet 2011-11-11
  • 打赏
  • 举报
回复
友情帮顶。
xiamin 2011-11-11
  • 打赏
  • 举报
回复
客户端是浏览器,提交数据。
qq598235031 2011-11-11
  • 打赏
  • 举报
回复
核心不是代码问题,业务(接口)定义的概念问题
循环读取,直到接收完所有数据
你的意思是只要读不到数据就算是接受完毕?这种做法明显存在缺陷
我个人建议,可以让客户端发数据完毕后再发个结束符(`)等,这样来判断接收数据完毕好使。
xiamin 2011-11-11
  • 打赏
  • 举报
回复
出现这个异常:
未处理的“System.Net.Sockets.SocketException”类型的异常出现在 System.dll 中。

其他信息: 远程主机强迫关闭了一个现有的连接。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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