溫馨提示×

c#socket通信怎么實現(xiàn)

小億
96
2023-07-26 17:06:25
欄目: 編程語言

在C#中實現(xiàn)Socket通信有多種方式,其中常見的方式是使用System.Net.Sockets命名空間提供的類。

下面是一個簡單的示例,演示了如何使用Socket進行客戶端和服務(wù)器之間的通信:

1. 客戶端代碼:

csharp

using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

public class Client {

    public static void Main() {

        // 創(chuàng)建一個Socket對象

        Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        // 連接到服務(wù)器

        IPAddress serverIP = IPAddress.Parse("服務(wù)器IP地址");

        int serverPort = 12345; // 服務(wù)器端口號

        IPEndPoint serverEndPoint = new IPEndPoint(serverIP, serverPort);

        clientSocket.Connect(serverEndPoint);

        // 發(fā)送數(shù)據(jù)到服務(wù)器

        string message = "Hello, server!";

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

        clientSocket.Send(data);

        // 接收服務(wù)器的響應

        byte[] buffer = new byte[1024];

        int bytesRead = clientSocket.Receive(buffer);

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

        Console.WriteLine("服務(wù)器響應:" + response);

        // 關(guān)閉Socket連接

        clientSocket.Shutdown(SocketShutdown.Both);

        clientSocket.Close();

    }

}

2. 服務(wù)器端代碼:

csharp

using System;

using System.Net;

using System.Net.Sockets;

using System.Text;

public class Server {

    public static void Main() {

        // 創(chuàng)建一個Socket對象

        Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        // 綁定IP地址和端口號

        IPAddress serverIP = IPAddress.Parse("服務(wù)器IP地址");

        int serverPort = 12345; // 服務(wù)器端口號

        IPEndPoint serverEndPoint = new IPEndPoint(serverIP, serverPort);

        serverSocket.Bind(serverEndPoint);

        // 開始監(jiān)聽客戶端連接

        serverSocket.Listen(10);

        Console.WriteLine("等待客戶端連接...");

        // 接受客戶端連接請求

        Socket clientSocket = serverSocket.Accept();

        // 接收客戶端發(fā)送的數(shù)據(jù)

        byte[] buffer = new byte[1024];

        int bytesRead = clientSocket.Receive(buffer);

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

        Console.WriteLine("客戶端請求:" + request);

        // 發(fā)送響應到客戶端

        string response = "Hello, client!";

        byte[] data = Encoding.ASCII.GetBytes(response);

        clientSocket.Send(data);

        // 關(guān)閉Socket連接

        clientSocket.Shutdown(SocketShutdown.Both);

        clientSocket.Close();

        serverSocket.Close();

    }

}

在使用上述示例代碼時,需要將服務(wù)器IP地址替換為實際的服務(wù)器IP地址??蛻舳撕头?wù)器端通過指定的IP地址和端口

號進行通信。

以上是一個簡單的示例,你可以根據(jù)需求擴展和修改代碼,以滿足實際的應用場景。

0