c#socket通讯传输图片,将图片保存到磁盘
时间: 2024-11-30 18:19:01 浏览: 5
C#使用Socket上传并保存图片的方法
在C#中,通过Socket通信传输图片通常需要分为两步:首先,你需要将图片数据转换为字节流,然后通过Socket发送这个字节流。接收端则需要解析收到的数据并将其保存到本地磁盘。下面是一个简化版的例子:
1. **发送图片**
```csharp
// 假设有一个Bitmap对象 named image
byte[] imageBytes = ImageConverter.ToByteArray(image); // 使用专门库进行图像编码,如System.Drawing.Imaging
using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
{
// 连接到接收方
socket.Connect("localhost", yourPort);
// 发送图片数据
socket.Send(imageBytes);
}
```
2. **接收图片并保存**
```csharp
public static void ReceiveImage(Socket socket)
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = socket.Receive(buffer)) > 0)
{
// 接收数据
byte[] imageData = new byte[bytesRead];
Array.Copy(buffer, 0, imageData, 0, bytesRead);
// 将接收到的数据保存到磁盘
string savePath = "C:\\Images\\received.jpg";
File.WriteAllBytes(savePath, imageData);
}
}
```
这里假设客户端和服务端都已知对方的IP地址和端口。注意,实际应用中可能需要处理异常,并使用更合适的协议(比如HTTP)来传递二进制数据。
阅读全文