NetworkStream仅在Windows 10中读取错误

时间:2017-12-11 15:26:50

标签: c# sockets tcpclient networkstream system.net.sockets

我遇到了一个奇怪的错误,我只尝试编写和读取流缓冲区,但是当尝试读取它时会引发SocketException。

这是我的代码:

// create tcp client
System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient("<localhost>", <port>);

client.ReceiveTimeout = 1; // timeout 1sec
// get stream that can be used for reading/writing

System.Net.Sockets.NetworkStream stream = client.GetStream();

// prepare the request message
String request ="My message";
byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(request);
stream.Write(requestBytes, 0, requestBytes.Length);

// get the response message
byte[] responseByteBuffer = new byte[1000];
int bytesRead = stream.Read(responseByteBuffer, 0, 1000); //Here raise SocketException

错误:

  

未处理的异常:System.IO.IOException:无法从中读取数据   传输连接:连接尝试失败,因为   连接方在一段时间后没有正确回应,或者   建立的连接失败,因为连接的主机失败了   响应。 ---&GT; System.Net.Sockets.SocketException:连接尝试   失败,因为关联方在a之后没有正确回应   一段时间,或建立的连接失败,因为连接   主持人没有回应   System.Net.Sockets.Socket.Receive(Byte []缓冲区,Int32偏移量,Int32   size,SocketFlags socketFlags)at   System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,   Int32 size)---内部异常堆栈跟踪结束--- at   System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,   Int32尺寸)

但奇怪的是,Windows 7上具有相同网络环境的相同代码工作正常。但是当我尝试在Windows 10中运行该工具时崩溃...不可用

我尝试了很多东西:增加接收和读取超时,关闭防火墙但行为相同。我也使用Visual Studio 2015中的网络跟踪,但是同样的错误并没有给我提示...

0 个答案:

没有答案