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缓冲区里的数据,而它不可能一次就把所有的读完,所以就会出现你说的这种情况,没有下文了。