好的,所以我寫了一些非常簡單的客戶端-服務(wù)器程序(在C#中使用.net)。當(dāng)我嘗試將字符串從客戶端傳輸?shù)椒?wù)器時,它工作正常,但是當(dāng)我嘗試將文件從客戶端傳輸?shù)椒?wù)器時,我得到了例外:System.IO.IOException:無法從傳輸連接中讀取數(shù)據(jù):現(xiàn)有連接被遠(yuǎn)程主機(jī)強(qiáng)行關(guān)閉。SocketException:現(xiàn)有連接被遠(yuǎn)程主機(jī)強(qiáng)行關(guān)閉該文件是txt文件(1KB)。如您所見,客戶端和服務(wù)器都在同一臺計算機(jī)上:客戶:using System;using System.Net.Sockets;using System.IO;namespace client2{ class Program { static void Main(string[] args) { try { // Create a TcpClient. Int32 port = 13000; TcpClient client = new TcpClient("127.0.0.1", port); FileStream file = new FileStream("./amir.txt", FileMode.Open, FileAccess.Read); byte[] data = System.IO.File.ReadAllBytes("./amir.txt"); //this one with a string works //Byte[] data = System.Text.Encoding.ASCII.GetBytes("bla bla"); // Get a client stream for reading and writing. Stream stream = client.GetStream(); stream.Write(data, 0, data.Length); } catch (IOException e) { } catch (ArgumentNullException e) { Console.WriteLine("ArgumentNullException: {0}", e); } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); } }}}
1 回答

侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個贊
我對您來說是個好消息,您的程序似乎運(yùn)行得很好。
我復(fù)制并執(zhí)行,得到了“ success.txt”。
這意味著您身邊唯一的問題必須是經(jīng)過IDE授權(quán)可以寫入文件的問題或鎖定文件的問題。我建議您重新啟動計算機(jī)-使用管理員權(quán)限(在Visual Studio中為“以管理員身份運(yùn)行”)打開IDE,然后查看是否仍有問題。
從代碼的角度來看-所有工作。
- 1 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報
0/150
提交
取消