我的代碼有一個主要問題。或者與系統。這是在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之後停止接收數據。它停止並且(如調試器顯示)掛在讀取方法上。這隻發生在我的機器上(MSDN上的Windows 7 x64,visual studio 2013 express,.net 4.5.1)。測試此應用程序也在我的機器上,但在Linux上,單聲道和其他一些Windows機器上。它在任何地方工作,但可悲的是不在這裏。我想這是我的系統出了問題,所以這裏是我試過到目前爲止:
運行的應用程序,而調試器
重新安裝Visual Studio的
重新安裝.NET框架
車窗防火牆和AV關
更改目標fr amework以前的版本(3,3.5)
不幸的是,重新安裝操作系統是不可能的。我必須在我的系統上完成這項工作,但我沒有選擇。我甚至不知道是什麼導致了這個問題。我還能檢查什麼?
我沒有看到與代碼有關的明顯問題,但有建議:嘗試用'Stream.CopyTo()'替換緩衝區並複製代碼,看看你是否仍然存在這個問題。其他需要檢查的東西 - AV軟件是否會干擾?連接斷開還是繼續(netstat)? Wireshark展示關於連接正在發生的事情? – LB2