林連接了的TcpClient和的TCPListener和IM 2臺設備現在只發送一個字符串和它的所有工作:如何通過networkstream c#接收大文件?
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] buffer = encoder.GetBytes("Hello Server!");
clientStream.Write(buffer, 0 , buffer.Length);
clientStream.Flush();
然後
bytesRead = clientStream.Read(message, 0, 4096);
ASCIIEncoding encoder = new ASCIIEncoding();
Console.WriteLine("Mensageee"+ encoder.GetString(message, 0, bytesRead));
但現在我需要在它發送大文件像10MB或更多,所以我應該使用這個?
string doc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
byte[] file = File.ReadAllBytes(doc + filedir)
byte[] fileBuffer = new byte[file.Length];
TcpClient clientSocket = new TcpClient(ip, port);
NetworkStream networkStream = clientSocket.GetStream();
networkStream.Write(file.ToArray(), 0, fileBuffer.GetLength(0));
networkStream.Close();
而我應該如何收到所有這個文件,然後將它保存在某個地方? 歡迎任何幫助的感謝O/
你爲什麼在'的byte []'調用'ToArray的()'?目前還不清楚你的'fileBuffer'變量是什麼...... networkStream.Write(file,0,file.Length)'有什麼問題? –
你說得對,我想我可以使用networkStream.Write(file,0,file.Length),這只是我發現的一個隨機例子。問題是我如何通過聽衆接收這個大文件,以及如何獲得有關還有多少錯誤的反饋,以便我可以更新進度條? – user3120770
好吧,你不知道未來會有多少數據,除非你把它放在某個地方的流中......你需要考慮你的協議。例如,您是否需要能夠在同一個連接中發送多個郵件? –