在C#中实现TCP/IP文件传输可以通过以下步骤:
- 创建一个TCP客户端和一个TCP服务器来进行通信。
- 在服务器端,接收客户端发送的文件数据,并将接收到的文件数据写入到一个新文件中。
- 在客户端,读取要传输的文件数据,并将文件数据发送到服务器端。
以下是一个简单的示例代码来实现TCP/IP文件传输:
服务器端代码:
using System; using System.IO; using System.Net; using System.Net.Sockets; class TCPServer { static void Main() { TcpListener listener = new TcpListener(IPAddress.Any, 12345); listener.Start(); TcpClient client = listener.AcceptTcpClient(); NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead; using (FileStream fileStream = File.Create("received_file.txt")) { while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, bytesRead); } } client.Close(); listener.Stop(); } }
客户端代码:
using System; using System.IO; using System.Net; using System.Net.Sockets; class TCPClient { static void Main() { TcpClient client = new TcpClient(); client.Connect(IPAddress.Parse("127.0.0.1"), 12345); NetworkStream stream = client.GetStream(); using (FileStream fileStream = File.OpenRead("file_to_send.txt")) { byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0) { stream.Write(buffer, 0, bytesRead); } } client.Close(); } }
在这个例子中,服务器端监听端口号为12345,并在本地创建一个名为"received_file.txt"的文件来接收客户端发送的文件数据。客户端连接到服务器端的IP地址"127.0.0.1"和端口号12345,并发送名为"file_to_send.txt"的文件数据给服务器端。
请注意,这只是一个简单的示例代码,实际应用中可能需要添加错误处理、文件大小校验等功能。