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(オプション)
パラメータ port は AF_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 内)
構文構文

例外例外
解説解説

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

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

この方法を使用する場合、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 のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照


英和和英テキスト翻訳

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

辞書ショートカット

すべての辞書の索引

「socket_bind」の関連用語

socket_bindのお隣キーワード
検索ランキング

   

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



socket_bindのページの著作権

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

©2026 GRAS Group, Inc.RSS