byte[] brecemsg = new byte[1024];
int bytesRec = m_sock.Receive(brecemsg);string srecemsg = Encoding.ASCII.GetString(brecemsg,0,bytesRec);这个地方加个循环,改为
byte[] brecemsg;
int bytesRec;
string srecemsg;
while(true)
{
brecemsg = new byte[1024];
bytesRec = m_sock.Receive(brecemsg);
if(bytesRec == 0)
break;
srecemsg += Encoding.ASCII.GetString(brecemsg,0,bytesRec);
}
因为Receive方法只是读TCP缓冲区里的数据,而它不可能一次就把所有的读完,所以就会出现你说的这种情况,没有下文了。
int bytesRec = m_sock.Receive(brecemsg);string srecemsg = Encoding.ASCII.GetString(brecemsg,0,bytesRec);这个地方加个循环,改为
byte[] brecemsg;
int bytesRec;
string srecemsg;
while(true)
{
brecemsg = new byte[1024];
bytesRec = m_sock.Receive(brecemsg);
if(bytesRec == 0)
break;
srecemsg += Encoding.ASCII.GetString(brecemsg,0,bytesRec);
}
因为Receive方法只是读TCP缓冲区里的数据,而它不可能一次就把所有的读完,所以就会出现你说的这种情况,没有下文了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货