次の方法で共有


Socket クラス

定義

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

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 を使用しながら、 を非同期メソッドに転送 CancellationToken し、操作全体を取り消し可能にする、同じ HTTP GET シナリオを示します。

ヒント

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

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)

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

Socket(SocketType, ProtocolType)

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

プロパティ

AddressFamily

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

Available

ネットワークから受信した、読み取り可能なデータ量を取得します。

Blocking

Socket がブロッキング モードかどうかを示す値を取得または設定します。

Connected

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

DontFragment

Socket でインターネット プロトコル (IP) データグラムの断片化を許可するかどうかを指定する値を、取得または設定します。

DualMode

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

EnableBroadcast

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

ExclusiveAddressUse

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

Handle

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

IsBound

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

LingerState

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

LocalEndPoint

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

MulticastLoopback

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

NoDelay

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

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) パケットの有効期間 (TTL) の値を指定する値を取得または設定します。

UseOnlyOverlappedIO
古い.

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

メソッド

Accept()

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

AcceptAsync()

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

AcceptAsync(CancellationToken)

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

AcceptAsync(Socket)

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

AcceptAsync(Socket, CancellationToken)

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

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)

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

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)

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

ConnectAsync(EndPoint, CancellationToken)

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

ConnectAsync(IPAddress, Int32)

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

ConnectAsync(IPAddress, Int32, CancellationToken)

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

ConnectAsync(IPAddress[], Int32)

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

ConnectAsync(IPAddress[], Int32, CancellationToken)

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

ConnectAsync(SocketAsyncEventArgs)

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

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

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

ConnectAsync(String, Int32)

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

ConnectAsync(String, Int32, CancellationToken)

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

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)

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

EndReceive(IAsyncResult, SocketError)

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

EndReceiveFrom(IAsyncResult, EndPoint)

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

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

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

EndSend(IAsyncResult)

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

EndSend(IAsyncResult, SocketError)

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

EndSendFile(IAsyncResult)

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

EndSendTo(IAsyncResult)

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

Equals(Object)

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

(継承元 Object)
Finalize()

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

GetHashCode()

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

GetHashCode()

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

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

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

GetSocketOption(SocketOptionLevel, SocketOptionName)

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

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

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

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

GetType()

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

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

数値制御コードを使用して、Socket の下位操作モードを設定します。

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

IOControlCode 列挙型を使用して制御コードを指定し、Socket の下位操作モードを設定します。

Listen()

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

Listen(Int32)

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

MemberwiseClone()

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

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

Socket の状態を確認します。

Poll(TimeSpan, SelectMode)

Socket の状態を確認します。

Receive(Byte[])

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

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

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

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

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

Receive(Byte[], Int32, SocketFlags)

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

Receive(Byte[], SocketFlags)

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

Receive(IList<ArraySegment<Byte>>)

バインドされた Socket からデータを受信して、受信バッファーのリストに格納します。

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

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

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

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

Receive(Span<Byte>)

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

Receive(Span<Byte>, SocketFlags)

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

Receive(Span<Byte>, SocketFlags, SocketError)

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

ReceiveAsync(ArraySegment<Byte>)

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

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

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

ReceiveAsync(IList<ArraySegment<Byte>>)

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

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

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

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[])

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

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

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

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

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

Send(Byte[], Int32, SocketFlags)

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

Send(Byte[], SocketFlags)

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

Send(IList<ArraySegment<Byte>>)

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

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

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

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

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

Send(ReadOnlySpan<Byte>)

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

Send(ReadOnlySpan<Byte>, SocketFlags)

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

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

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

SendAsync(ArraySegment<Byte>)

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

SendAsync(ArraySegment<Byte>, SocketFlags)

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

SendAsync(IList<ArraySegment<Byte>>)

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

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

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

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

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

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

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

SendAsync(SocketAsyncEventArgs)

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

SendFile(String)

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

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

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

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

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

SendFileAsync(String, CancellationToken)

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

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

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

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)

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

AcceptAsync(Socket, Socket)

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

ConnectAsync(Socket, EndPoint)

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

ConnectAsync(Socket, EndPoint, CancellationToken)

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

ConnectAsync(Socket, IPAddress, Int32)

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

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

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

ConnectAsync(Socket, IPAddress[], Int32)

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

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

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

ConnectAsync(Socket, String, Int32)

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

ConnectAsync(Socket, String, Int32, CancellationToken)

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

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

こちらもご覧ください