我需要根據他的IP地址和特定端口將所有類型的文件傳輸給特定用戶。因此,無論何時在指定端口(服務器正在等待文件的端口)發出新請求,一個文件被傳輸,如果它在另一個端口傳輸一些聊天消息。使用套接字文件傳輸
我的問題是我需要發送的文件名稱和大小以及其內容,以便在客戶端一個新的下載文件將被創建(具有相同的名稱)作爲發送的文件。我如何去this.Also我需要知道文件的大小,這樣我可以創建一個字節數組接收content.And我的代碼here.Please幫我
public void fileClient()
{
TcpClient client = new TcpClient();
client.Connect(IPAddress.Parse("127.0.0.1"), 40399);
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
dlg.ShowDialog();
string fileName = dlg.FileName;
FileInfo fi = new FileInfo(fileName);
string fileNameandSize = fi.Name + "." + fi.Length;
byte[] fileContents = File.ReadAllBytes(fileName);
Stream stream = client.GetStream();
stream.SetLength(fi.Length);//If i set the file length here am getting an exception
stream.Write(fileContents, 0, fileContents.Length);
client.Close();
}
public void fileServer()
{
TcpListener list;
Int32 port1 = 40399;
list = new TcpListener(port1);
list.Start();
TcpClient client = list.AcceptTcpClient();
MessageBox.Show("Client trying to connect");
Thread.Sleep(10);
Stream stream = client.GetStream();
byte[] receivedBytes = new byte[stream.Length];
stream.Read(receivedBytes, 0, Convert.ToInt16(stream.Length));
string fileName = "C:\\Users\\dhivya.s\\Desktop\\Recent received";
File.WriteAllBytes(fileName + "\\" + "newFile", receivedBytes);
list.Stop();
client.Close();
}
您需要定義通信_protocol_爲您的應用。這可以是帶內或帶外的。 –
我無法理解你的評論 –
這兩個人如何溝通,以告訴對方發生了什麼。雖然套接字被整齊地包裝到一個類中,但您需要定義雙方說話的語言。對他們來說,他們只是獲取字節數據。你需要某種方式說「嗨,我給你一個文件」,這樣對方知道該期待什麼 –