C# Socket如何實(shí)現(xiàn)數(shù)據(jù)傳輸

c#
小樊
240
2024-07-02 03:31:43

在C#中,可以使用Socket類(lèi)實(shí)現(xiàn)數(shù)據(jù)傳輸。以下是一個(gè)簡(jiǎn)單的示例代碼,演示如何使用Socket類(lèi)進(jìn)行數(shù)據(jù)傳輸:

  1. 創(chuàng)建一個(gè)服務(wù)器端Socket:
// 創(chuàng)建一個(gè)服務(wù)器端Socket
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// 綁定IP地址和端口
serverSocket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888));

// 監(jiān)聽(tīng)客戶(hù)端連接
serverSocket.Listen(10);

// 接受客戶(hù)端連接
Socket clientSocket = serverSocket.Accept();
  1. 創(chuàng)建一個(gè)客戶(hù)端Socket連接到服務(wù)器:
// 創(chuàng)建一個(gè)客戶(hù)端Socket
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

// 連接服務(wù)器
clientSocket.Connect(IPAddress.Parse("127.0.0.1"), 8888);
  1. 服務(wù)器端發(fā)送數(shù)據(jù)到客戶(hù)端:
// 服務(wù)器端發(fā)送數(shù)據(jù)
byte[] data = Encoding.UTF8.GetBytes("Hello, client!");
clientSocket.Send(data);
  1. 客戶(hù)端接收服務(wù)器端發(fā)送的數(shù)據(jù):
// 客戶(hù)端接收數(shù)據(jù)
byte[] buffer = new byte[1024];
int length = clientSocket.Receive(buffer);
string message = Encoding.UTF8.GetString(buffer, 0, length);
Console.WriteLine("Received message from server: " + message);

通過(guò)以上簡(jiǎn)單的示例代碼,可以實(shí)現(xiàn)在C#中使用Socket類(lèi)進(jìn)行數(shù)據(jù)傳輸。在實(shí)際應(yīng)用中,可以根據(jù)需求對(duì)代碼進(jìn)行進(jìn)一步完善,如處理異常、加入數(shù)據(jù)校驗(yàn)等。

0