在C#中,可以使用Socket類的Receive方法來接收數據。該方法有多種重載形式。以下是一個基本的用法示例:
using System;
using System.Net;
using System.Net.Sockets;
public class SocketReceiveExample
{
public static void Main()
{
// 創建一個Socket對象并連接到服務器
Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
clientSocket.Connect(IPAddress.Parse("服務器IP地址"), 12345);
// 接收數據的緩沖區
byte[] buffer = new byte[1024];
// 接收數據
int bytesRead = clientSocket.Receive(buffer);
// 將接收到的字節數組轉換為字符串
string receivedData = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);
// 打印接收到的數據
Console.WriteLine("接收到的數據:{0}", receivedData);
// 關閉Socket連接
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
在上述示例中,首先創建一個Socket對象并連接到服務器。然后,創建一個緩沖區用于接收數據。使用Receive方法接收數據,并將數據存儲在緩沖區中。接收完成后,可以將接收到的字節數組通過指定的編碼方式轉換為字符串。最后,關閉Socket連接。
需要注意的是,Receive方法是阻塞的,即程序在接收數據時會一直等待,直到有數據可用或者發生錯誤。如果需要設置超時時間或者非阻塞模式,可以使用Socket類的ReceiveTimeout和Blocking屬性進行設置。