Socket クラス

定義

Barke ソケット インターフェイスを実装します。

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
継承
Socket
実装

次の例は、 Socket クラスを使用して HTTP サーバーにデータを送信し、標準出力に ASCII 応答を出力する方法を示しています。 次の使用例は、ページ全体を受信するまで呼び出し元のスレッドをブロックします。

private static void SendHttpRequest(Uri? uri = null, int port = 80)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.0
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    socket.Connect(uri.Host, port);

    // Send the request.
    // For the tiny amount of data in this example, the first call to Send() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += socket.Send(requestBytes, bytesSent, requestBytes.Length - bytesSent, SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = socket.Receive(responseBytes);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        Console.Out.Write(responseChars, 0, charCount);
    }
}

次の例では、タスク ベースの非同期 API を使用するのと同じ HTTP GET シナリオを示しながら、 CancellationToken を非同期メソッドに転送し、操作全体を取り消すことができます。

Tip

Socket通常、 CancellationToken を受け取らない非同期メソッドは、ヒープに割り当てられた Taskを返します。 取り消し可能なオーバーロードは常に ValueTask返されます。これを使用すると、高パフォーマンス コードでの割り当てを減らすことができます。

private static async Task SendHttpRequestAsync(Uri? uri = null, int port = 80, CancellationToken cancellationToken = default)
{
    uri ??= new Uri("http://example.com");

    // Construct a minimalistic HTTP/1.1 request
    byte[] requestBytes = Encoding.ASCII.GetBytes(@$"GET {uri.AbsoluteUri} HTTP/1.1
Host: {uri.Host}
Connection: Close

");

    // Create and connect a dual-stack socket
    using Socket socket = new Socket(SocketType.Stream, ProtocolType.Tcp);
    await socket.ConnectAsync(uri.Host, port, cancellationToken);

    // Send the request.
    // For the tiny amount of data in this example, the first call to SendAsync() will likely deliver the buffer completely,
    // however this is not guaranteed to happen for larger real-life buffers.
    // The best practice is to iterate until all the data is sent.
    int bytesSent = 0;
    while (bytesSent < requestBytes.Length)
    {
        bytesSent += await socket.SendAsync(requestBytes.AsMemory(bytesSent), SocketFlags.None);
    }

    // Do minimalistic buffering assuming ASCII response
    byte[] responseBytes = new byte[256];
    char[] responseChars = new char[256];

    while (true)
    {
        int bytesReceived = await socket.ReceiveAsync(responseBytes, SocketFlags.None, cancellationToken);

        // Receiving 0 bytes means EOF has been reached
        if (bytesReceived == 0) break;

        // Convert byteCount bytes to ASCII characters using the 'responseChars' buffer as destination
        int charCount = Encoding.ASCII.GetChars(responseBytes, 0, bytesReceived, responseChars, 0);

        // Print the contents of the 'responseChars' buffer to Console.Out
        await Console.Out.WriteAsync(responseChars.AsMemory(0, charCount), cancellationToken);
    }
}

注釈

この API の詳細については、「Socket の 補足 API 解説」を参照してください。

コンストラクター

名前 説明
Socket(AddressFamily, SocketType, ProtocolType)

指定したアドレス ファミリ、ソケットの種類、プロトコルを使用して、 Socket クラスの新しいインスタンスを初期化します。

Socket(SafeSocketHandle)

指定したソケット ハンドルの Socket クラスの新しいインスタンスを初期化します。

Socket(SocketInformation)

Socketから返された指定した値を使用して、DuplicateAndClose(Int32) クラスの新しいインスタンスを初期化します。

Socket(SocketType, ProtocolType)

指定したソケットの種類とプロトコルを使用して、 Socket クラスの新しいインスタンスを初期化します。 オペレーティング システムが IPv6 をサポートしている場合、このコンストラクターはデュアル モード ソケットを作成します。それ以外の場合は、IPv4 ソケットが作成されます。

プロパティ

名前 説明
AddressFamily

Socketのアドレス ファミリを取得します。

Available

ネットワークから受信され、読み取ることができるデータの量を取得します。

Blocking

Socketがブロック モードであるかどうかを示す値を取得または設定します。

Connected

最後のSocket操作またはSend操作の時点で、Receiveがリモート ホストに接続されているかどうかを示す値を取得します。

DontFragment

Socketでインターネット プロトコル (IP) データグラムをフラグメント化できるかどうかを示す値を取得または設定します。

DualMode

Socketが IPv4 と IPv6 の両方に使用されるデュアル モード ソケットであるかどうかを示す値を取得または設定します。

EnableBroadcast

Booleanがブロードキャスト パケットを送信できるかどうかを示すSocket値を取得または設定します。

ExclusiveAddressUse

Socketがポートにバインドするプロセスを 1 つだけ許可するかどうかを示す値を取得または設定します。

Handle

Socketのオペレーティング システム ハンドルを取得します。

IsBound

Socketが特定のローカル ポートにバインドされているかどうかを示す値を取得します。

LingerState

保留中のすべてのデータを送信しようとしたときに、 Socket がソケットの閉じるのを遅らせるかどうかを示す値を取得または設定します。

LocalEndPoint

ローカル エンドポイントを取得します。

MulticastLoopback

送信マルチキャスト パケットを送信側アプリケーションに配信するかどうかを指定する値を取得または設定します。

NoDelay

ストリームBooleanが Nagle アルゴリズムを使用しているかどうかを示すSocket値を取得または設定します。

OSSupportsIPv4

基になるオペレーティング システムとネットワーク アダプターがインターネット プロトコル バージョン 4 (IPv4) をサポートしているかどうかを示します。

OSSupportsIPv6

基になるオペレーティング システムとネットワーク アダプターがインターネット プロトコル バージョン 6 (IPv6) をサポートしているかどうかを示します。

OSSupportsUnixDomainSockets

基になるオペレーティング システムが Unix ドメイン ソケットをサポートしているかどうかを示します。

ProtocolType

Socketのプロトコルの種類を取得します。

ReceiveBufferSize

Socketの受信バッファーのサイズを指定する値を取得または設定します。

ReceiveTimeout

同期 Receive 呼び出しがタイムアウトになる時間を指定する値を取得または設定します。

RemoteEndPoint

リモート エンドポイントを取得します。

SafeHandle

現在のSocket オブジェクトがカプセル化するソケット ハンドルを表すSafeSocketHandleを取得します。

SendBufferSize

Socketの送信バッファーのサイズを指定する値を取得または設定します。

SendTimeout

同期 Send 呼び出しがタイムアウトになる時間を指定する値を取得または設定します。

SocketType

Socketの型を取得します。

SupportsIPv4
古い.
古い.
古い.

現在のホストで IPv4 サポートが使用可能で有効になっているかどうかを示す値を取得します。

SupportsIPv6
古い.
古い.
古い.

フレームワークが特定の古い Dns メンバーに対して IPv6 をサポートするかどうかを示す値を取得します。

Ttl

Socketによって送信されるインターネット プロトコル (IP) パケットの Time To Live (TTL) 値を指定する値を取得または設定します。

UseOnlyOverlappedIO
古い.

ソケットで重複 I/O モードのみを使用するかどうかを指定する値を取得または設定します。 .NET 5 以降 (.NET Core バージョンを含む) では、値は常に false です。

メソッド

名前 説明
Accept()

新しく作成された接続の新しい Socket を作成します。

AcceptAsync()

受信接続を受け入れます。

AcceptAsync(CancellationToken)

受信接続を受け入れます。

AcceptAsync(Socket, CancellationToken)

受信接続を受け入れます。

AcceptAsync(Socket)

受信接続を受け入れます。

AcceptAsync(SocketAsyncEventArgs)

着信接続の試行を受け入れる非同期操作を開始します。

BeginAccept(AsyncCallback, Object)

着信接続の試行を受け入れる非同期操作を開始します。

BeginAccept(Int32, AsyncCallback, Object)

受信接続の試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されたデータの最初のブロックを受信します。

BeginAccept(Socket, Int32, AsyncCallback, Object)

指定したソケットからの受信接続試行を受け入れる非同期操作を開始し、クライアント アプリケーションによって送信されたデータの最初のブロックを受け取ります。

BeginConnect(EndPoint, AsyncCallback, Object)

リモート ホスト接続の非同期要求を開始します。

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

リモート ホスト接続の非同期要求を開始します。 ホストは、 IPAddress とポート番号によって指定されます。

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

リモート ホスト接続の非同期要求を開始します。 ホストは、 IPAddress 配列とポート番号で指定されます。

BeginConnect(String, Int32, AsyncCallback, Object)

リモート ホスト接続の非同期要求を開始します。 ホストは、ホスト名とポート番号で指定されます。

BeginDisconnect(Boolean, AsyncCallback, Object)

リモート エンドポイントから切断するための非同期要求を開始します。

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

接続された Socketからデータの非同期受信を開始します。

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

接続された Socketからデータの非同期受信を開始します。

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

接続された Socketからデータの非同期受信を開始します。

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

接続された Socketからデータの非同期受信を開始します。

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

指定したネットワーク デバイスからのデータの非同期受信を開始します。

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

指定した SocketFlagsを使用して、指定したバイト数のデータをデータ バッファーの指定した場所に非同期的に受信し始め、エンドポイントとパケット情報を格納します。

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

接続された Socketに非同期的にデータを送信します。

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

接続された Socketに非同期的にデータを送信します。

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

接続された Socketに非同期的にデータを送信します。

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

接続された Socketに非同期的にデータを送信します。

BeginSendFile(String, AsyncCallback, Object)

fileName フラグを使用して、接続されているSocket オブジェクトにファイル UseDefaultWorkerThreadを送信します。

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

接続された Socket オブジェクトに非同期的にデータのファイルとバッファーを送信します。

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

特定のリモート ホストに非同期的にデータを送信します。

Bind(EndPoint)

Socketをローカル エンドポイントに関連付けます。

CancelConnectAsync(SocketAsyncEventArgs)

リモート ホスト接続の非同期要求を取り消します。

Close()

Socket接続を閉じ、関連付けられているすべてのリソースを解放します。

Close(Int32)

Socket接続を閉じ、指定されたタイムアウトで関連付けられているすべてのリソースを解放して、キューに登録されたデータを送信できるようにします。

Connect(EndPoint)

リモート ホストへの接続を確立します。

Connect(IPAddress, Int32)

リモート ホストへの接続を確立します。 ホストは、IP アドレスとポート番号によって指定されます。

Connect(IPAddress[], Int32)

リモート ホストへの接続を確立します。 ホストは、IP アドレスとポート番号の配列によって指定されます。

Connect(String, Int32)

リモート ホストへの接続を確立します。 ホストは、ホスト名とポート番号で指定されます。

ConnectAsync(EndPoint, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(EndPoint)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress, Int32, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress, Int32)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress[], Int32, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(IPAddress[], Int32)

リモート ホストへの接続を確立します。

ConnectAsync(SocketAsyncEventArgs)

リモート ホストへの接続に対する非同期要求を開始します。

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs, ConnectAlgorithm)

Barke ソケット インターフェイスを実装します。

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

リモート ホストへの接続に対する非同期要求を開始します。

ConnectAsync(String, Int32, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(String, Int32)

リモート ホストへの接続を確立します。

Disconnect(Boolean)

ソケット接続を閉じ、ソケットを再利用できるようにします。

DisconnectAsync(Boolean, CancellationToken)

接続されているソケットをリモート ホストから切断します。

DisconnectAsync(SocketAsyncEventArgs)

リモート エンドポイントから切断するための非同期要求を開始します。

Dispose()

Socket クラスの現在のインスタンスで使用されているすべてのリソースを解放します。

Dispose(Boolean)

Socketによって使用されるアンマネージ リソースを解放し、必要に応じてマネージド リソースを破棄します。

DuplicateAndClose(Int32)

ターゲット プロセスのソケット参照を複製し、このプロセスのソケットを閉じます。

EndAccept(Byte[], IAsyncResult)

着信接続の試行を非同期的に受け入れ、リモート ホスト通信を処理する新しい Socket オブジェクトを作成します。 このメソッドは、転送された初期データを含むバッファーを返します。

EndAccept(Byte[], Int32, IAsyncResult)

着信接続の試行を非同期的に受け入れ、リモート ホスト通信を処理する新しい Socket オブジェクトを作成します。 このメソッドは、初期データと転送されたバイト数を含むバッファーを返します。

EndAccept(IAsyncResult)

着信接続の試行を非同期的に受け入れ、リモート ホスト通信を処理する新しい Socket を作成します。

EndConnect(IAsyncResult)

保留中の非同期接続要求を終了します。

EndDisconnect(IAsyncResult)

保留中の非同期切断要求を終了します。

EndReceive(IAsyncResult, SocketError)

保留中の非同期読み取りを終了します。

EndReceive(IAsyncResult)

保留中の非同期読み取りを終了します。

EndReceiveFrom(IAsyncResult, EndPoint)

特定のエンドポイントからの保留中の非同期読み取りを終了します。

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

特定のエンドポイントからの保留中の非同期読み取りを終了します。 この方法では、パケットに関する情報が EndReceiveFrom(IAsyncResult, EndPoint)よりも多く表示されます。

EndSend(IAsyncResult, SocketError)

保留中の非同期送信を終了します。

EndSend(IAsyncResult)

保留中の非同期送信を終了します。

EndSendFile(IAsyncResult)

保留中のファイルの非同期送信を終了します。

EndSendTo(IAsyncResult)

特定の場所への保留中の非同期送信を終了します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Finalize()

Socket クラスによって使用されるリソースを解放します。

GetHashCode()

Socket インスタンスのハッシュ値を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

プラットフォーム固有のレベルと名前識別子を使用してソケット オプション値を取得します。

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

バイト配列として表される、指定した Socket オプション設定を返します。

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

配列内の指定した Socket オプションの値を返します。

GetSocketOption(SocketOptionLevel, SocketOptionName)

オブジェクトとして表される、指定した Socket オプションの値を返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IOControl(Int32, Byte[], Byte[])

数値制御コードを使用して、 Socket の低レベルの動作モードを設定します。

IOControl(IOControlCode, Byte[], Byte[])

Socket列挙型を使用して制御コードを指定するIOControlCodeの低レベルの動作モードを設定します。

Listen()

Socketをリッスン状態にします。

Listen(Int32)

Socketをリッスン状態にします。

MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
Poll(Int32, SelectMode)

Socketの状態を決定します。

Poll(TimeSpan, SelectMode)

Socketの状態を決定します。

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーにデータを受信します。

Receive(Byte[], Int32, Int32, SocketFlags)

指定したSocketを使用して、バインドされたSocketFlagsから、指定したバイト数を受信バッファーの指定したオフセット位置に受信します。

Receive(Byte[], Int32, SocketFlags)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーに指定されたバイト数のデータを受信します。

Receive(Byte[], SocketFlags)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーにデータを受信します。

Receive(Byte[])

バインドされた Socket から受信バッファーにデータを受信します。

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーの一覧にデータを受信します。

Receive(IList<ArraySegment<Byte>>, SocketFlags)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーの一覧にデータを受信します。

Receive(IList<ArraySegment<Byte>>)

バインドされた Socket から受信バッファーの一覧にデータを受信します。

Receive(Span<Byte>, SocketFlags, SocketError)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーにデータを受信します。

Receive(Span<Byte>, SocketFlags)

指定したSocketを使用して、バインドされたSocketFlagsから受信バッファーにデータを受信します。

Receive(Span<Byte>)

バインドされた Socket から受信バッファーにデータを受信します。

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

接続されているソケットからデータを受信します。

ReceiveAsync(ArraySegment<Byte>)

接続されているソケットからデータを受信します。

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

接続されているソケットからデータを受信します。

ReceiveAsync(IList<ArraySegment<Byte>>)

接続されているソケットからデータを受信します。

ReceiveAsync(Memory<Byte>, CancellationToken)

接続されているソケットからデータを受信します。

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

接続されているソケットからデータを受信します。

ReceiveAsync(SocketAsyncEventArgs)

接続された Socket オブジェクトからデータを受信する非同期要求を開始します。

ReceiveFrom(Byte[], EndPoint)

データ グラムをデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、指定したデータ バッファーの指定した位置にデータのバイト数を受信し、エンドポイントを格納します。

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、指定したバイト数をデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFrom(Byte[], SocketFlags, EndPoint)

指定した SocketFlagsを使用してデータ グラムをデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFrom(Span<Byte>, EndPoint)

データ グラムをデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

指定した SocketFlagsを使用してデータ グラムをデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFrom(Span<Byte>, SocketFlags, SocketAddress)

指定した SocketFlagsを使用してデータ グラムをデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFromAsync(ArraySegment<Byte>, EndPoint)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(Memory<Byte>, EndPoint, CancellationToken)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

データを受信し、送信ホストのエンドポイントを返します。

ReceiveFromAsync(Memory<Byte>, SocketFlags, SocketAddress, CancellationToken)

指定した SocketFlagsを使用してデータ グラムをデータ バッファーに受信し、エンドポイントを格納します。

ReceiveFromAsync(SocketAsyncEventArgs)

指定したネットワーク デバイスからのデータの非同期受信を開始します。

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

指定した SocketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

指定した socketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

データを受信し、メッセージの送信者に関する追加情報を返します。

ReceiveMessageFromAsync(SocketAsyncEventArgs)

指定した SocketFlagsを使用して、指定したデータのバイト数をデータ バッファー内の指定した場所に非同期的に受信し、エンドポイントとパケット情報を格納します。

Select(IList, IList, IList, Int32)

1 つ以上のソケットの状態を決定します。

Select(IList, IList, IList, TimeSpan)

1 つ以上のソケットの状態を決定します。

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

指定したオフセットから始まり、指定したSocketを使用して、指定したバイト数のデータを接続されたSocketFlagsに送信します。

Send(Byte[], Int32, Int32, SocketFlags)

指定したオフセットから始まり、指定したSocketを使用して、指定したバイト数のデータを接続されたSocketFlagsに送信します。

Send(Byte[], Int32, SocketFlags)

指定したSocketを使用して、接続されているSocketFlagsに、指定したバイト数のデータを送信します。

Send(Byte[], SocketFlags)

指定したSocketを使用して、接続されているSocketFlagsにデータを送信します。

Send(Byte[])

接続されている Socketにデータを送信します。

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

指定したSocketを使用して、リスト内のバッファーのセットを接続されたSocketFlagsに送信します。

Send(IList<ArraySegment<Byte>>, SocketFlags)

指定したSocketを使用して、リスト内のバッファーのセットを接続されたSocketFlagsに送信します。

Send(IList<ArraySegment<Byte>>)

リスト内のバッファーのセットを接続された Socketに送信します。

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

指定したSocketを使用して、接続されているSocketFlagsにデータを送信します。

Send(ReadOnlySpan<Byte>, SocketFlags)

指定したSocketを使用して、接続されているSocketFlagsにデータを送信します。

Send(ReadOnlySpan<Byte>)

接続されている Socketにデータを送信します。

SendAsync(ArraySegment<Byte>, SocketFlags)

接続されているソケットにデータを送信します。

SendAsync(ArraySegment<Byte>)

接続されているソケットにデータを送信します。

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

接続されているソケットにデータを送信します。

SendAsync(IList<ArraySegment<Byte>>)

接続されているソケットにデータを送信します。

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

接続されているソケットにデータを送信します。

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

接続されているソケットにデータを送信します。

SendAsync(SocketAsyncEventArgs)

接続された Socket オブジェクトに非同期的にデータを送信します。

SendFile(String, Byte[], Byte[], TransmitFileOptions)

指定したfileName値を使用して、接続されたSocket オブジェクトにデータのファイル TransmitFileOptionsとバッファーを送信します。

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

指定したfileName値を使用して、接続されたSocket オブジェクトにデータのファイル TransmitFileOptionsとバッファーを送信します。

SendFile(String)

fileName送信フラグを使用して、接続されたSocket オブジェクトにファイル UseDefaultWorkerThreadを送信します。

SendFileAsync(String, CancellationToken)

接続されたSocket オブジェクトにファイル fileNameを送信します。

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

指定したfileName値を使用して、接続されたSocket オブジェクトにデータのファイル TransmitFileOptionsとバッファーを送信します。

SendPacketsAsync(SocketAsyncEventArgs)

接続された Socket オブジェクトに、ファイルのコレクションまたはメモリ 内のデータ バッファーを非同期的に送信します。

SendTo(Byte[], EndPoint)

指定したエンドポイントにデータを送信します。

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

指定したデータのバイト数を、バッファー内の指定した場所から開始し、指定した SocketFlagsを使用して、指定したエンドポイントに送信します。

SendTo(Byte[], Int32, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、指定したデータのバイト数を指定したエンドポイントに送信します。

SendTo(Byte[], SocketFlags, EndPoint)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendTo(ReadOnlySpan<Byte>, EndPoint)

指定したエンドポイントにデータを送信します。

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendToAsync(ArraySegment<Byte>, EndPoint)

指定したリモート ホストにデータを送信します。

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

指定したリモート ホストにデータを送信します。

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

指定したリモート ホストにデータを送信します。

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

指定したリモート ホストにデータを送信します。

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendToAsync(SocketAsyncEventArgs)

特定のリモート ホストに非同期的にデータを送信します。

SetIPProtectionLevel(IPProtectionLevel)

ソケットの IP 保護レベルを設定します。

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

プラットフォーム固有のレベルと名前識別子を使用してソケット オプション値を設定します。

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

指定した Socket オプションを指定した Boolean 値に設定します。

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

指定した Socket オプションを、バイト配列として表される指定した値に設定します。

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

指定した Socket オプションを指定した整数値に設定します。

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

指定した Socket オプションを、オブジェクトとして表される指定した値に設定します。

Shutdown(SocketShutdown)

Socketでの送受信を無効にします。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IDisposable.Dispose()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

Socketで使用されているすべてのリソースを解放します。

拡張メソッド

名前 説明
AcceptAsync(Socket, Socket)

ソケットで受信接続の試行を受け入れるために非同期操作を実行します。

AcceptAsync(Socket)

ソケットで受信接続の試行を受け入れるために非同期操作を実行します。

ConnectAsync(Socket, EndPoint, CancellationToken)

リモート ホストへの接続を確立します。

ConnectAsync(Socket, EndPoint)

リモート ホストへの接続を確立します。

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

IP アドレスとポート番号で指定されたリモート ホストへの接続を確立します。

ConnectAsync(Socket, IPAddress, Int32)

リモート ホストへの接続を確立します。 ホストは、IP アドレスとポート番号によって指定されます。

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

IP アドレスとポート番号の配列によって指定されるリモート ホストへの接続を確立します。

ConnectAsync(Socket, IPAddress[], Int32)

リモート ホストへの接続を確立します。 ホストは、IP アドレスとポート番号の配列によって指定されます。

ConnectAsync(Socket, String, Int32, CancellationToken)

ホスト名とポート番号で指定されたリモート ホストへの接続を確立します。

ConnectAsync(Socket, String, Int32)

リモート ホストへの接続を確立します。 ホストは、ホスト名とポート番号で指定されます。

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

接続されているソケットからデータを受信します。

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

接続されているソケットからデータを受信します。

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

接続されているソケットからデータを受信します。

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

指定したネットワーク デバイスからデータを受信します。

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、指定したデータバッファーの指定された位置にデータのバイト数を受信し、エンドポイントとパケット情報を格納します。

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

接続されたソケットにデータを送信します。

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

接続されたソケットにデータを送信します。

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

接続されたソケットにデータを送信します。

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

特定のリモート ホストに非同期的にデータを送信します。

適用対象

スレッド セーフ

Socket インスタンスで送受信操作を同時に実行しても安全ですが、複数の送受信呼び出しを同時に発行することはお勧めしません。 基になるプラットフォームの実装によっては、大規模またはマルチバッファーの送受信に対して意図しないデータ インターリーブが発生する可能性があります。

こちらもご覧ください