C# 实现局域网传输jpg格式的图片
时间: 2024-10-22 11:29:59 浏览: 32
在C#中,要实现在局域网内传输JPG格式的图片,可以使用Socket编程或者命名管道(Named Pipes)。这里我们简单讲解一下基于Socket的例子,因为这是最常见的网络通信方式。
首先,你需要两个程序,一个是发送端(Sender),另一个是接收端(Receiver)。以下是简单的步骤:
**发送端 (Sender)**:
1. 创建一个Socket实例,并指定TCP/IP协议。
```csharp
using System.Net;
using System.IO;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
```
2. 连接到接收方的IP地址和端口。
```csharp
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("接收机IP"), 接收端端口号);
socket.Connect(endPoint);
```
3. 读取本地图片文件内容。
```csharp
byte[] imageData = File.ReadAllBytes(@"C:\路径\to\image.jpg");
```
4. 使用Socket将数据发送出去。
```csharp
socket.Send(imageData, imageData.Length, SocketFlags.None);
```
5. 关闭连接。
```csharp
socket.Shutdown(SocketShutdown.Both);
socket.Close();
```
**接收端 (Receiver)**:
1. 同样创建一个Socket并监听。
```csharp
Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(new IPEndPoint(IPAddress.Any, 端口号));
listener.Listen(1);
```
2. 接受连接,然后读取发送过来的数据。
```csharp
Socket client = listener.Accept();
byte[] imageDataReceived = new byte[client.ReceiveBufferSize];
client.Receive(imageDataReceived);
```
3. 将接收到的数据写入文件。
```csharp
File.WriteAllBytes(@"C:\路径\to\receivedImage.jpg", imageDataReceived);
```
4. 关闭连接。
```csharp
client.Shutdown(SocketShutdown.Both);
client.Close();
listener.Stop();
```
记得替换上述代码中的`接收机IP`、`接收端端口号`和`本地图片路径`。运行这两个程序,在局域网内就可以成功传输JPG图片了。
阅读全文