wpf程序socket tcp通信无法收到传回来的信息 ,请问有什么会造成这样的情况

可以连接,发送信息都没有问题,网络状态良好,就是接受信息会报超时。(我的超时时间5s)

 public void Send(byte[] data)
        {
            if (!socket.Connected)
                throw new Exception("socket is not connect");

            socket.Send(data);
        }

        public byte ReadByte()
        {
            while (true)
            {
                if (!socket.Connected)
                    throw new Exception("socket is not connect");

                if (readPos < readLen)
                    return buffer[readPos++];
                readPos = readLen = 0;

                readLen += socket.Receive(buffer, readLen, buffer.Length - readLen, SocketFlags.None);
                // 没有读到数据,稍等一会再读取
                if (readLen == 0)
                    Thread.Sleep(100);
            }
        }

以上两个方法是收发信息,在本地调试是没什么问题的,就算一次的超时也能在下一次连接上,但是现场是一直收不到信息,超时的状态

网络是不是在同一个网段,相互是否能连上,防火墙是否阻止了端口