首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

点对点文件传输c#

您好!您提到的“点对点文件传输c#”是一个涉及到文件传输和编程的问题。在这里,我将为您提供一个简单的C#代码示例,用于实现点对点文件传输。

首先,我们需要了解一下点对点文件传输的基本概念。点对点文件传输是指在不需要中央服务器的情况下,直接在两台计算机之间进行文件传输。这种方式可以减少服务器的负担,提高传输效率。

以下是一个简单的C#代码示例,用于实现点对点文件传输:

代码语言:csharp
复制
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;

class FileTransfer
{
    static void Main()
    {
        // 创建一个TCP/IP套接字
        Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        // 绑定IP地址和端口号
        IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
        int port = 12345;
        IPEndPoint localEndPoint = new IPEndPoint(ipAddress, port);
        socket.Bind(localEndPoint);

        // 监听连接请求
        socket.Listen(10);
        Console.WriteLine("等待客户端连接...");

        // 接受客户端连接请求
        Socket clientSocket = socket.Accept();
        Console.WriteLine("客户端已连接。");

        // 发送文件名和文件大小
        string fileName = "test.txt";
        FileInfo fileInfo = new FileInfo(fileName);
        long fileSize = fileInfo.Length;
        byte[] fileNameBytes = System.Text.Encoding.UTF8.GetBytes(fileName);
        byte[] fileSizeBytes = BitConverter.GetBytes(fileSize);
        clientSocket.Send(fileNameBytes);
        clientSocket.Send(fileSizeBytes);

        // 发送文件内容
        using (FileStream fileStream = File.OpenRead(fileName))
        {
            byte[] buffer = new byte[1024];
            int bytesRead;
            long totalBytesRead = 0;
            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
            {
                totalBytesRead += bytesRead;
                Console.WriteLine("已发送 {0} / {1} 字节", totalBytesRead, fileSize);
                clientSocket.Send(buffer, bytesRead, SocketFlags.None);
            }
        }

        // 关闭套接字
        clientSocket.Shutdown(SocketShutdown.Both);
        clientSocket.Close();
        socket.Close();
    }
}

在这个示例中,我们创建了一个TCP/IP套接字,绑定IP地址和端口号,并监听连接请求。当客户端连接时,我们发送文件名和文件大小,然后发送文件内容。最后,我们关闭套接字。

请注意,这只是一个简单的示例,实际应用中可能需要考虑更多的细节,例如错误处理、文件传输进度、断点续传等。同时,在实际应用中,我们通常会使用现有的文件传输协议和库,例如FTP、SFTP、WebDAV等,以提高安全性和可靠性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券