c# scoket通信案例
时间: 2023-12-11 11:02:44 浏览: 27
下面是一个简单的C# Socket通信案例,其中客户端和服务器端运行在同一台计算机上,它们之间通过网络进行通信:
服务器端代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main(string[] args)
{
// 创建Socket对象
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 绑定IP地址和端口号
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 12345);
serverSocket.Bind(ipEndPoint);
// 开始监听
serverSocket.Listen(10);
Console.WriteLine("服务器启动,等待客户端连接...");
// 接受客户端连接
Socket clientSocket = serverSocket.Accept();
Console.WriteLine("客户端连接成功,可以开始通信...");
// 发送数据给客户端
string message = "Hello, Client!";
byte[] data = Encoding.UTF8.GetBytes(message);
clientSocket.Send(data);
// 接收客户端发送的数据
data = new byte[1024];
int length = clientSocket.Receive(data);
message = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine("接收到客户端发送的数据:{0}", message);
// 关闭Socket连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
serverSocket.Close();
}
}
```
客户端代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main(string[] args)
{
// 创建Socket对象
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 连接服务器
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 12345);
clientSocket.Connect(ipEndPoint);
Console.WriteLine("连接服务器成功,可以开始通信...");
// 接收服务器发送的数据
byte[] data = new byte[1024];
int length = clientSocket.Receive(data);
string message = Encoding.UTF8.GetString(data, 0, length);
Console.WriteLine("接收到服务器发送的数据:{0}", message);
// 发送数据给服务器
message = "Hello, Server!";
data = Encoding.UTF8.GetBytes(message);
clientSocket.Send(data);
// 关闭Socket连接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
```
这个例子中,服务器端创建了一个Socket对象,并将其绑定到IP地址和端口号上,然后开始监听客户端的连接请求。当客户端连接成功后,服务器端发送一条消息给客户端,并等待客户端发送数据。客户端连接服务器后,接收服务器发送的消息,并向服务器发送一条消息。最后,客户端和服务器端都关闭了Socket连接。