我需要根据他的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_为您的应用。这可以是带内或带外的。 –
我无法理解你的评论 –
这两个人如何沟通,以告诉对方发生了什么。虽然套接字被整齐地包装到一个类中,但您需要定义双方说话的语言。对他们来说,他们只是获取字节数据。你需要某种方式说“嗨,我给你一个文件”,这样对方知道该期待什么 –