C# の Socket.Receive メソッドの使い方

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メソッドはブロッキング、すなわち、プログラムはデータ受信時にデータが利用可能になるまで、またはエラーが発生するまで待機します。タイムアウト設定や非ブロッキングモードが必要な場合は、ソケットクラスのReceiveTimeoutおよびBlockingプロパティを使用して設定できます。

bannerAds