我写的服务器程序中Socket.Receive接受问题?
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);出现异常
不写循环时为什么空行后的数据收不到
------解决方案--------------------核心不是代码问题,业务(接口)定义的概念问题
循环读取,直到接收完所有数据
你的意思是只要读不到数据就算是接受完毕?这种做法明显存在缺陷
我个人建议,可以让客户端发数据完毕后再发个结束符(`)等,这样来判断接收数据完毕好使。