c#实现文件传输?

在C#中,您可以使用Socket类来实现文件传输。以下是一个基于Socket的简单文件传输示例:

1. 客户端代码

客户端代码使用Socket类连接服务器,读取文件内容并发送到服务器。以下是一个客户端代码示例:

```csharp
using System.IO;
using System.Net;
using System.Net.Sockets;




public static void Main()
{
    var client = new TcpClient();
    client.Connect("localhost", 8080);




    using var stream = client.GetStream();
    using var fileStream = File.OpenRead("path_to_file");




    var bytesToSend = new byte[fileStream.Length];
    fileStream.Read(bytesToSend, 0, bytesToSend.Length);
    stream.Write(bytesToSend, 0, bytesToSend.Length);




    client.Close();
}
```

在此示例中,我们首先创建一个TcpClient并连接到服务器。然后,我们使用TcpClient.GetStream方法获取用于读写数据的NetworkStream。接下来,我们打开要传输的文件并读取其内容。最后,我们将文件内容写入NetworkStream中并关闭TcpClient。

2. 服务器端代码

服务器端代码监听客户端连接,并接收客户端发送的文件内容。以下是一个服务器端代码示例:

```csharp
using System.IO;
using System.Net;
using System.Net.Sockets;




public static void Main()
{
    var listener = new TcpListener(IPAddress.Any, 8080);
    listener.Start();




    while (true)
    {
        var client = listener.AcceptTcpClient();
        var stream = client.GetStream();




        using var memoryStream = new MemoryStream();
        stream.CopyTo(memoryStream);




        var bytesReceived = memoryStream.ToArray();
        File.WriteAllBytes("path_to_save_file", bytesReceived);




        client.Close();
    }
}
```

在此示例中,我们首先创建一个TcpListener,并开始监听来自客户端的连接。然后,我们使用TcpListener.AcceptTcpClient方法等待连接,并使用TcpClient.GetStream方法获取用于读写数据的NetworkStream。接下来,我们读取NetworkStream中的数据并将其保存到内存流中。最后,我们将内存流的内容写入磁盘,并关闭TcpClient。

上述示例代码只是演示了如何使用Socket和NetworkStream类进行文件传输,实际应用中还需要考虑文件大小、网络中断、传输速度等因素,并进行相应的处理。在实际应用中,您可能还需要使用线程池或异步编程模型来处理多个并发传输请求,以提高应用程序的性能和可扩展性。

如果喜欢我的文章,那么

“在看”和转发是对我最大的支持!

-

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值