我的代码有个大问题。或使用系统。以下是C#中的客户端代码:
TcpClient client = new TcpClient("192.168.1.254", 19999);
NetworkStream nstream = client.GetStream();
Console.WriteLine("Connected.");
Stream stream = new FileStream("test.dat", FileMode.Create, FileAccess.Write);
int counter = 0;
byte[] buffer = new byte[1024];
while ((counter = nstream.Read(buffer, 0, 1024)) > 0)
{
stream.Write(buffer, 0, counter);
}
stream.Close();
nstream.Close();
client.Close();
Console.WriteLine("Done here.");
此应用程序与用python编写的服务器一起工作。这里没有火箭科学。客户端连接,服务器立即在循环中发送数据,直到结束,套接字关闭。问题是,在我的机器上,这个应用程序总是在5-7 kB后停止接收数据。它停止并(如调试器所示)挂起read方法。这只在我的计算机上发生(MSDN的Windows 7 x64,visual studio 2013 express,.net 4.5.1)。也在我的机器上测试了此应用程序,但在Linux、mono和其他一些Windows机器上测试。它在任何地方都有效,但遗憾的是这里不行。我想这是我的系统出了问题,所以下面是我目前为止所做的尝试:
-
在没有调试器的情况下运行应用程序
-
重新安装visual studio
-
重新安装.NET framework
-
关闭windows防火墙和AV
-
将目标框架更改为以前的版本(3、3.5)
不幸的是,无法重新安装操作系统。我必须在我的系统上实现这一点,但我已经没有选择了。我甚至不知道是什么导致了这个问题。我还能查什么?