解决方案 »

  1.   

    这样收发数据会造成数据粘包,所以客户端有时能收到数据有时就收不到,最简单的办法是每次发送数据之后加一个时间间隔,而且客户端只用一个socket来receive数据就可以了
    服务端:                        _clientSkt.Send(new byte[] { 9, 2 });
                           Thread.Sleep(2000);
                            _clientSkt.Send(new byte[] { 9, 1 });
                           Thread.Sleep(2000);
                            _clientSkt.Send(_msgBuff);
                           Thread.Sleep(2000);
    客户端:                                   byte[] buf = new byte[_maxPacket];
                                        int byteCnt = _nws.Read(buf, 0, buf.Length);
                                        //buf里面从0开始到byteCnt结束的内容就是你实际接收的数据
      

  2.   

    客户端 可以是 一个  while (true) 的循环,不停的接受数据。
      

  3.   

    我觉得你的建议应该是对的,但是解决的方法不是很合适啊,每发送一次就要sleep一段时间,似乎大大减缓了程序的运行速度