Socket.Bind メソッド
Socket をローカル エンドポイントと関連付けます。
Public Sub Bind( _
ByVal localEP As EndPoint _)
[C#]
public void Bind(EndPointlocalEP);
[C++]
public: void Bind(EndPoint* localEP);
[JScript]
public function Bind(
localEP : EndPoint);
パラメータ
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | localEP が null 参照 (Visual Basic では Nothing) です。 |
SocketException | ソケットへのアクセスを試みているときにエラーが発生しました。詳細については、「解説」を参照してください。 |
ObjectDisposedException | Socket は閉じられています。 |
SecurityException | コール スタックの上位にある呼び出し元が、要求された操作のアクセス許可を保持していません。 |
解説
Bind メソッドは、特定のローカル エンドポイントを使用する必要がある場合に使用してください。 Bind を呼び出してからでないと、 Listen メソッドを呼び出すことはできません。特定のローカル エンドポイントを使用する必要がない場合は、 Connect メソッドを使用する前に、 Bind を呼び出す必要はありません。 Bind メソッドは、コネクションレスのプロトコルおよびコネクション指向のプロトコルの両方で使用できます。
Bind を呼び出す前に、まず、データ通信を開始するローカル IPEndPoint を作成する必要があります。どのローカル アドレスが割り当てられていてもかまわない場合は、 IPAddress.Any をアドレス パラメータとして使用して IPEndPoint を作成します。すると、基になるサービス プロバイダが最も適切なローカル ネットワーク アドレスを割り当てます。複数のネットワーク インターフェイスがある場合は、これを使用することによってアプリケーションを簡素化できることがあります。使用するローカル ポートについても特に指定がない場合は、ポート番号 0 を使用して IPEndPoint を作成します。この場合、サービス プロバイダは 1024 ~ 5000 の範囲で使用できるポート番号を割り当てます。
この方法を使用する場合、 LocalEndPoint を呼び出すことによって、既に割り当てられているローカル ネットワーク アドレスとポート番号を知ることができます。コネクション指向のプロトコルを使用している場合、 Connect メソッドまたは EndConnect メソッドを呼び出すまで、 LocalEndPoint はローカルに割り当てられているネットワーク アドレスを返しません。コネクションレスのプロトコルを使用している場合は、送受信を完了するまでこの情報にアクセスできません。
メモ マルチキャスト データグラムを受信するには、マルチキャスト ポート番号を使用して Bind メソッドを呼び出す必要があります。
メモ ReceiveFrom メソッドを使用してコネクションレスのデータグラムを受信する場合は、 Bind メソッドを呼び出す必要があります。
メモ Bind メソッドを呼び出したときに SocketException が発生した場合は、 SocketException.ErrorCode を使用して具体的なエラー コードを取得してください。このコードを取得したら、Windows Socket Version 2 API エラー コードのマニュアルから、エラーの詳細情報を確認できます。これは MSDN から入手できます。
使用例
[Visual Basic, C#, C++] 指定したローカル エンドポイントを使用して、 Socket をバインドする例を次に示します。
Try
aSocket.Bind(anEndPoint)
Catch e As Exception
Console.WriteLine("Winsock error: " & e.ToString())
End Try
[C#]
try {
aSocket.Bind(anEndPoint);
}
catch (Exception e) {
Console.WriteLine("Winsock error: " + e.ToString());
}
[C++]
try {
aSocket->Bind(anEndPoint);
}
catch (Exception* e) {
Console::WriteLine(S"Winsock error: {0}", e);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- SocketPermission 。関連付けられた列挙体: NetworkAccess.Accept
参照
Socket クラス | Socket メンバ | System.Net.Sockets 名前空間 | IPEndPoint | Connect | Listen | IPAddress | LocalEndPoint