stream_socket_shutdown
完全な二重接続を閉じます
関数名:stream_socket_shutdown()
関数の説明:stream_socket_shutdown()関数stream_socket_client()またはstream_socket_server()で作成されたソケット接続を閉じます。
適用バージョン:PHP 4> = 4.0.7、PHP 5、PHP 7
構文:bool stream_socket_shutdown(resource $ stream、int $ how)
パラメーター:
返品値:成功の真のリターン、および失敗にfalseを返します。
例:
// 创建套接字连接$socket = stream_socket_client('tcp://www.example.com:80', $errno, $errstr, 30); // 发送HTTP请求$request = "GET / HTTP/1.1\r\n"; $request .= "Host: www.example.com\r\n"; $request .= "Connection: close\r\n\r\n"; fwrite($socket, $request); // 关闭写入连接,继续读取服务器响应stream_socket_shutdown($socket, STREAM_SHUT_WR); // 读取服务器响应$response = ''; while (!feof($socket)) { $response .= fgets($socket); } // 关闭读取连接stream_socket_shutdown($socket, STREAM_SHUT_RD); // 关闭套接字连接fclose($socket);
上記の例は、stream_socket_shutdown()関数を使用して、httpリクエストを送信した後に書き込み接続を閉じる方法を示し、サーバーの応答を読み続けます。まず、Stream_Socket_Client()関数を使用してソケット接続を作成し、HTTPリクエストを送信して書き込み接続を閉じます。次に、FGETS()関数を使用して、それが終了するまでサーバーの応答をループします。最後に、読み取り接続を閉じて、ソケット接続を閉じます。
例の接続を閉じる順序は、最初に書き込み接続を閉じてから読み取り接続を閉じることであることに注意してください。これは、HTTPリクエストで、クライアントが最初にリクエストを送信し、次にサーバーが応答するのを待つためです。したがって、最初に書き込み接続を閉じて、リクエストが送信されたことをサーバーに通知し、サーバーの応答を読み続けます。