次の方法で共有


Socket.Bind(EndPoint) メソッド

定義

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

public:
 void Bind(System::Net::EndPoint ^ localEP);
public void Bind(System.Net.EndPoint localEP);
member this.Bind : System.Net.EndPoint -> unit
Public Sub Bind (localEP As EndPoint)

パラメーター

localEP
EndPoint

Socketに関連付けるローカル EndPoint

例外

localEPnullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

呼び出し履歴の上位の呼び出し元には、要求された操作に対するアクセス許可がありません。

次のコード例では、指定したローカル エンドポイントを使用して Socket をバインドします。

try {
    aSocket.Bind(anEndPoint);
}
catch (Exception e) {
    Console.WriteLine("Winsock error: " + e.ToString());
}
Try
    aSocket.Bind(anEndPoint)
Catch e As Exception
    Console.WriteLine("Winsock error: " & e.ToString())
End Try

注釈

特定のローカル エンドポイントを使用する必要がある場合は、 Bind メソッドを使用します。 Listen メソッドを呼び出すには、Bindを呼び出す必要があります。 特定のローカル エンドポイントを使用する必要がない限り、Connect メソッドを使用する前にBindを呼び出す必要はありません。 Bindメソッドは、コネクションレス プロトコルと接続指向プロトコルの両方で使用できます。

Bindを呼び出す前に、まず、データの通信元となるローカル IPEndPointを作成する必要があります。 どのローカル アドレスが割り当てられているか気にしない場合は、アドレス パラメーターとして IPAddress.Any を使用してIPEndPointを作成できます。基になるサービス プロバイダーは、最も適切なネットワーク アドレスを割り当てます。 これは、複数のネットワーク インターフェイスがある場合にアプリケーションを簡略化するのに役立ちます。 使用するローカル ポートを気にしない場合は、ポート番号に 0 を使用して IPEndPoint を作成できます。 この場合、サービス プロバイダーは 1024 から 5000 の間で使用可能なポート番号を割り当てます。

上記の方法を使用する場合は、 LocalEndPointを呼び出すことによって、割り当てられているローカル ネットワーク アドレスとポート番号を確認できます。 接続指向プロトコルを使用している場合、 LocalEndPoint は、 Connect または EndConnect メソッドの呼び出しを行うまで、ローカルに割り当てられたネットワーク アドレスを返しません。 コネクションレス プロトコルを使用している場合は、送受信が完了するまで、この情報にアクセスできません。

UDP ソケットが受信したパケットに関するインターフェイス情報を受信する場合は、Bind メソッドを呼び出した直後に、ソケット オプションを PacketInformation に設定して、SetSocketOption メソッドを明示的に呼び出す必要があります。

マルチキャスト データグラムを受信する場合は、マルチキャスト ポート番号を使用して Bind メソッドを呼び出す必要があります。

ReceiveFrom メソッドを使用してコネクションレス データグラムを受信する場合は、Bind メソッドを呼び出す必要があります。

Bind メソッドを呼び出すときにSocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

このメンバーは、アプリケーションでネットワーク トレースを有効にすると、トレース情報を出力します。 詳細については、「 .NET Framework でのネットワーク トレース」を参照してください。

適用対象

こちらもご覧ください