socket通讯c#编程
时间: 2023-09-10 09:14:57 浏览: 109
当然,我可以帮助你关于socket通讯的C#编程问题。你可以使用C#中的`System.Net.Sockets`命名空间来实现基于socket的通信。以下是一个简单的示例代码,展示了如何创建一个socket服务器和一个socket客户端进行通讯。
首先,我们来看一下服务器端的代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class SocketServer
{
static void Main()
{
// 创建一个TCP socket并绑定到指定的IP地址和端口
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int port = 8888;
TcpListener listener = new TcpListener(ipAddress, port);
listener.Start();
Console.WriteLine("等待客户端连接...");
// 接受客户端连接
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("客户端已连接!");
// 获取网络流
NetworkStream stream = client.GetStream();
// 接收客户端发送的数据
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string data = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("接收到数据:{0}", data);
// 向客户端发送响应数据
byte[] response = Encoding.ASCII.GetBytes("欢迎连接到服务器!");
stream.Write(response, 0, response.Length);
Console.WriteLine("响应已发送!");
// 关闭连接
client.Close();
listener.Stop();
Console.WriteLine("按任意键退出...");
Console.ReadKey();
}
}
```
现在让我们看一下客户端的代码:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class SocketClient
{
static void Main()
{
// 创建一个TCP socket并连接到服务器
TcpClient client = new TcpClient();
client.Connect("127.0.0.1", 8888);
Console.WriteLine("已连接到服务器!");
// 获取网络流
NetworkStream stream = client.GetStream();
// 向服务器发送数据
string message = "Hello, Server!";
byte[] buffer = Encoding.ASCII.GetBytes(message);
stream.Write(buffer, 0, buffer.Length);
Console.WriteLine("已发送数据:{0}", message);
// 接收服务器的响应数据
buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("接收到响应:{0}", response);
// 关闭连接
client.Close();
Console.WriteLine("按任意键退出...");
Console.ReadKey();
}
}
```
请注意,在这个简单的示例中,服务器和客户端都只进行一次数据交换。你可以根据自己的需求扩展代码来实现更复杂的通讯逻辑。
希望这个示例对你有所帮助!如果你有更多问题,欢迎继续提问。
阅读全文