TCPClient不读取传入的数据

| 我正在使用一个C#应用程序,该应用程序通过TCP / IP连接到主机以发送并使用TCPClient Stream接收响应。 问题是我可以使用Stream.Write(...)发送数据,但是当我尝试通过调用Stream.Read(...)获取针对已发送数据的响应时,它挂起并且永不返回。 我已经检查了Wire-Shark之​​类的网络嗅探工具,可以看到我的网络接口正在接收来自主机的数据。为什么我的TCPClient无法读取此数据? WireShark显示的接收到的数据的十六进制转储以00开头,是否表示为Null字符,从而导致TCPClient读取问题? 00-1d-4f-fb-43-4b-00-1d-7e-3a-9a-20-08-00-45-00-00-34 这是编写代码...
myTcpClient = new TcpClient();
myTcpClient.Connect(\"192.168.0.194\", 1958);
Stream myTCPStream = myTcpClient.GetStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] msgBytes = asen.GetBytes(\"Message to be sent.\");
myTCPStream.Write(msgBytes, 0, msgBytes.Length);
那就是阅读的代码...
byte[] bytesReceived = new byte[100];
int nBytesRead = myTCPStream.Read(bytesReceived, 0, bytesReceived.Length);
myTcpClient.Close();
感谢帮助。     
已邀请:
        这可能是一个时序问题,但是很难看到您的代码(发送数据包后是否直接运行读取的代码?它是否在同一线程上?) 另一个想法:尝试将NoDelay属性设置为true。这告诉TCP堆栈立即将数据传递到您的应用程序,而不是等待完整的缓冲区(禁用Nagle算法)。这对于减少发送和接收小数据包时的延迟很有用。     

要回复问题请先登录注册