C# socket通信
时间: 2023-09-23 07:05:29 浏览: 141
C#中的Socket通信是一种用于实现网络通信的技术。它可以在不同的设备之间传输数据,例如在客户端和服务器之间进行通信。
要使用Socket通信,首先需要引入System.Net.Sockets命名空间。接下来,您可以创建一个Socket对象来表示客户端或服务器端的套接字。
在客户端中,您可以使用Socket对象来连接到服务器端的套接字,并通过发送和接收数据来进行通信。在服务器端,您可以使用Socket对象来监听并接受客户端的连接请求,并处理客户端发送的数据。
以下是一个简单的示例,展示了在C#中使用Socket实现客户端和服务器端的通信:
```csharp
// 服务器端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Server
{
public static void Main()
{
// 监听IP地址和端口号
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int port = 8888;
// 创建TCP监听器
TcpListener listener = new TcpListener(ipAddress, port);
listener.Start();
Console.WriteLine("服务器已启动,等待客户端连接...");
// 接受客户端连接
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("客户端已连接!");
// 获取网络流
NetworkStream stream = client.GetStream();
// 读取客户端发送的数据
byte[] data = new byte[1024];
int bytesRead = stream.Read(data, 0, data.Length);
string message = Encoding.ASCII.GetString(data, 0, bytesRead);
Console.WriteLine("接收到客户端消息: " + message);
// 发送响应给客户端
byte[] response = Encoding.ASCII.GetBytes("服务器已接收到消息!");
stream.Write(response, 0, response.Length);
Console.WriteLine("响应已发送给客户端!");
// 关闭连接
client.Close();
listener.Stop();
Console.ReadLine();
}
}
// 客户端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Client
{
public static void Main()
{
// 服务器IP地址和端口号
string serverIP = "127.0.0.1";
int port = 8888;
// 创建TCP客户端
TcpClient client = new TcpClient(serverIP, port);
// 获取网络流
NetworkStream stream = client.GetStream();
// 发送消息给服务器
string message = "Hello, server!";
byte[] data = Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);
Console.WriteLine("已发送消息给服务器: " + message);
// 接收服务器的响应
data = new byte[1024];
int bytesRead = stream.Read(data, 0, data.Length);
string response = Encoding.ASCII.GetString(data, 0, bytesRead);
Console.WriteLine("接收到服务器响应: " + response);
// 关闭连接
client.Close();
Console.ReadLine();
}
}
```
这只是一个简单的示例,可以帮助您了解C#中Socket通信的基本原理。在实际应用中,您可能需要处理更复杂的通信逻辑和错误处理。