温馨提示×

c#socket通信怎么写

小亿
102
2023-07-26 16:04:02
栏目: 编程语言

在C#中进行Socket通信可以使用System.Net.Sockets.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 networkStream = client.GetStream();

        // 接收消息

        byte[] buffer = new byte[1024];

        int bytesRead = networkStream.Read(buffer, 0, buffer.Length);

        string message = Encoding.ASCII.GetString(buffer, 0, bytesRead);

        Console.WriteLine("接收到的消息: " + message);

        // 发送响应消息

        string responseMessage = "Hello from the server!";

        byte[] responseData = Encoding.ASCII.GetBytes(responseMessage);

        networkStream.Write(responseData, 0, responseData.Length);

        Console.WriteLine("响应消息已发送.");

        // 关闭连接

        client.Close();

        listener.Stop();

    }

}

客户端:

csharp

using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

public class Client

{

    public static void Main()

    {

        // 创建一个IP地址和端口号

        IPAddress ipAddress = IPAddress.Parse("127.0.0.1");

        int port = 8888;


        // 创建一个TcpClient实例并连接服务器

        TcpClient client = new TcpClient();

        client.Connect(ipAddress, port);

        // 获取网络流

        NetworkStream networkStream = client.GetStream();

        // 发送消息

        string message = "Hello from the client!";

        byte[] requestData = Encoding.ASCII.GetBytes(message);

        networkStream.Write(requestData, 0, requestData.Length);

        Console.WriteLine("消息已发送.");

        // 接收响应消息

        byte[] buffer = new byte[1024];

        int bytesRead = networkStream.Read(buffer, 0, buffer.Length);

        string responseMessage = Encoding.ASCII.GetString(buffer, 0, bytesRead);

        Console.WriteLine("接收到的响应消息: " + responseMessage);

        // 关闭连接

        client.Close();

    }

}

在上述示例中,服务器端通过创建TCP监听器并等待客户端连接。一旦客户端连接成功,服务器端就会接收到客户端发送

的消息,并返回一个响应消息。客户端通过创建TcpClient实例并连接到服务器,然后发送消息并接收响应消息。

请注意,这只是一个简单的示例,可能需要根据你的具体需求进行适当修改。此外,还需要处理异常和错误情况,并进行

适当的错误处理和资源释放。

0