Socket.Bindとは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > Socket.Bindの意味・解説 

socket_bind

(PHP 4 >= 4.0.7, PHP 5)
socket_bind — ソケットに名前をバインドする

説明

bool socket_bind ( resource socket, string address [, int port] )
address で指定した名前を socket で指定したソケットにバインドします。 これは、socket_connect() あるいは socket_listen() を使用して接続が確立される前に 行われます。

パラメータ

socket
socket_create() で作成した有効なソケット記述子。
address
ソケットの種類が AF_INET の場合、 address はドットで 4 つに区切られた表記 (例: 127.0.0.1)の IP アドレス。
ソケットの種類が AF_UNIX の場合、 address は Unix ドメインソケット (例: /tmp/my.sock)。
port(オプション)
パラメータ portAF_INET ソケットに接続する場合にのみ使用され、 接続するリモートホストのポートを指定します。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。
エラーコードは socket_last_error() により取得できます。 このコードを socket_strerror() に渡すことにより、 エラー内容を表すテキストを得ることができます。

例 2149. socket_bind() を使用してソースアドレスを指定する
<?php
// 新しいソケットを作成する
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// コンピュータが所有する IP アドレスリストの例
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// ソースアドレスをバインドする
socket_bind($sock, $sourceips['madcoder']);

// 接続先アドレスと接続する
socket_connect($sock, '127.0.0.1', 80);

// 書き込む
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// 閉じる
socket_close($sock);

?>


注意

注意: この関数は、 socket_connect() の前に実行されている必要があります。
注意: Windows 9x/ME 互換性の注意: マシンに属しないアドレスにソケットをバインドしようとした場合、 socket_last_error() は 無効なエラーコードを返すことがあります。

参考

socket_connect()
socket_listen()
socket_create()
socket_last_error()
socket_strerror()


Socket.Bind メソッド

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

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外種類条件

ArgumentNullException

localEPnull 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

SecurityException

コール スタックの上位にある呼び出し元が、要求され操作アクセス許可保持していません。

解説解説

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

Bind呼び出す前に、まず、データ通信開始するローカル IPEndPoint を作成する必要があります。どのローカル アドレス割り当てられていてもかまわない場合は、IPAddress.Any をアドレス パラメータとして使用して IPEndPoint作成します。すると、基になるサービス プロバイダが最も適切なローカル ネットワーク アドレス割り当てます複数ネットワーク インターフェイスがある場合は、これを使用することによってアプリケーション簡素化できることあります使用するローカル ポートについても特に指定ない場合は、ポート番号 0 を使用して IPEndPoint作成します。この場合サービス プロバイダ10245000範囲使用できるポート番号割り当てます

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

メモメモ

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

使用例使用例

指定したローカル エンドポイント使用してSocketバインドするコード例次に示します

Try
    aSocket.Bind(anEndPoint)
Catch e As Exception
    Console.WriteLine("Winsock error: " & e.ToString())
End Try

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

try
{
   aSocket->Bind( anEndPoint );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( "Winsock error: {0}", e );
}
try {
    aSocket.Bind(anEndPoint);
}
catch (System.Exception e) {
    Console.WriteLine(("Winsock error: " + e.ToString()));
}
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Socket.Bind」の関連用語

Socket.Bindのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Socket.Bindのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS