编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

在C#中使用HPSocket做一个简单的服务器和客户端

wxchong 2024-07-21 07:44:30 开源技术 114 ℃ 0 评论

在C#中使用HPSocket,需要先安装HPSocket库,然后通过引用该库来使用其中的类和方法。

以下是一个简单的示例,演示如何使用HPSocket库来创建一个TCP服务器和客户端:

服务器端代码:

csharpusing System;
using System.Net;
using System.Net.Sockets;
using HPSocket.Framework;

class Program
{
    static void Main()
    {
        // 创建TCP监听器
        TcpListener server = new TcpListener(IPAddress.Any, 12345);
        server.Start();
        
        Console.WriteLine("服务器已启动,等待连接...");
        
        // 接收客户端连接请求
        TcpClient client = server.AcceptTcpClient();
        Console.WriteLine("已连接客户端:" + client.Client.RemoteEndPoint.ToString());
        
        // 接收客户端发送的数据
        NetworkStream stream = client.GetStream();
        byte[] buffer = new byte[1024];
        int bytesRead = stream.Read(buffer, 0, buffer.Length);
        string data = Encoding.UTF8.GetString(buffer, 0, bytesRead);
        Console.WriteLine("收到的数据:" + data);
        
        // 向客户端发送数据
        string response = "Hello, 客户端!";
        byte[] responseBuffer = Encoding.UTF8.GetBytes(response);
        stream.Write(responseBuffer, 0, responseBuffer.Length);
        Console.WriteLine("已发送响应给客户端:" + response);
        
        // 关闭连接
        client.Close();
        server.Stop();
    }
}

客户端代码:

csharpusing System;
using System.Net;
using System.Net.Sockets;
using HPSocket.Framework;

class Program
{
    static void Main()
    {
        // 创建TCP客户端并连接到服务器
        TcpClient client = new TcpClient();
        client.Connect("127.0.0.1", 12345);
        Console.WriteLine("已连接到服务器:" + client.Client.RemoteEndPoint.ToString());
        
        // 发送数据给服务器
        NetworkStream stream = client.GetStream();
        string message = "Hello, 服务器!";
        byte[] messageBuffer = Encoding.UTF8.GetBytes(message);
        stream.Write(messageBuffer, 0, messageBuffer.Length);
        Console.WriteLine("已发送数据给服务器:" + message);
        
        // 接收服务器响应的数据
        byte[] buffer = new byte[1024];
        int bytesRead = stream.Read(buffer, 0, buffer.Length);
        string response = Encoding.UTF8.GetString(buffer, 0, bytesRead);
        Console.WriteLine("从服务器收到的响应:" + response);
        
        // 关闭连接
        client.Close();
    }
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表