我遇到一个奇怪的错误,我只尝试编写和读取流缓冲区,但在尝试读取它时引发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:无法从传输连接读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机无法响应而 Build 的连接失败 . ---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者 Build 的连接失败,因为连接的主机无法在System.Net.Sockets.Socket响应 . 在System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,Int32大小)接收(Byte []缓冲区,Int32偏移量,Int32大小,SocketFlags socketFlags)---内部异常堆栈跟踪结束---在System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,Int32大小)

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

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