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)
매개 변수 :
반환 값 : 성공시 사실, 실패에 대한 거짓.
예:
// 创建套接字连接$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);
위의 예는 HTTP 요청을 보내고 서버의 응답을 계속 읽은 후 Stream_Socket_Shutdown () 함수를 사용하는 방법을 보여줍니다. 먼저 Stream_Socket_Client () 함수를 사용하여 소켓 연결을 생성 한 다음 HTTP 요청을 보내고 쓰기 연결을 닫습니다. 그런 다음 FGETS () 함수를 사용하여 서버 응답이 끝날 때까지 루프를 사용하십시오. 마지막으로 읽기 연결을 닫고 소켓 연결을 닫으십시오.
예제에서 연결된 연결 순서는 먼저 쓰기 연결을 닫은 다음 읽기 연결을 닫는 것입니다. 이는 HTTP 요청에서 클라이언트가 먼저 요청을 보내고 서버가 응답하기를 기다리기 때문입니다. 따라서 먼저 쓰기 연결을 닫아 요청이 전송되었음을 서버에 알리고 서버의 응답을 계속 읽습니다.