현재 위치: > 최신 기사 목록> stream_socket_client ()를 사용하고 stream_context_get_options ()를 결합하여 소켓 구성을 얻습니다

stream_socket_client ()를 사용하고 stream_context_get_options ()를 결합하여 소켓 구성을 얻습니다

M66 2025-05-28

PHP에서 Stream_Socket_Client () 함수는 네트워크 연결 또는 UNIX 도메인 소켓 연결을 여는 데 사용됩니다. 시간 초과 설정, 암호화, 프록시 등과 같은 많은 옵션을 지원합니다.이 옵션은 stream_context_create () 에 의해 생성되며 Stream_Socket_client () 에 컨텍스트로 전달됩니다.

이 기사에서는 stream_socket_client () 함수를 사용하는 방법을 소개합니다. stream_context_get_options ()를 결합하여 소켓 구성을 얻고 봅니다.

1 단계 : 소켓 컨텍스트를 만듭니다

먼저 Stream_Socket_Client () 에 대한 컨텍스트를 작성해야합니다. 컨텍스트는 네트워크 연결의 동작을 제어하는 ​​여러 구성 옵션을 포함하는 구조입니다. 예를 들어, 연결의 시간 초과 시간을 설정하고 SSL 암호화를 활성화 할 수 있습니다.

 // 스트림 컨텍스트를 만듭니다
$options = [
    'http' => [
        'method' => 'GET',
        'header' => "User-Agent: PHP\r\n",
    ],
    'ssl' => [
        'verify_peer' => false,  // 피어 인증서를 확인하지 않습니다
        'verify_peer_name' => false,  // 피어 인증서를 확인하지 않습니다名称
    ]
];
$context = stream_context_create($options);

위의 코드에서는 HTTP 구성 및 SSL 구성을 만듭니다.이 구성은 피어 인증서를 확인하지 않도록 연결됩니다.

2 단계 : Stream_Socket_Client () 를 통해 연결을 엽니 다.

다음으로 Stream_Socket_Client ()를 사용하여 TCP 연결을 엽니 다. 연결할 때 컨텍스트를 매개 변수로 전달합니다.

 // 컨텍스트로 열립니다 TCP 연결하다
$fp = stream_socket_client("tcp://m66.net:80", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);

if (!$fp) {
    echo "연결하다失败: $errno - $errstr\n";
    exit;
}

이 코드에서는 M66.net 의 포트 80에 연결합니다. 연결이 성공하면 $ FP를 통해 데이터를 읽고 쓸 수 있습니다.

3 단계 : Stream_Context_get_options ()를 사용하여 구성을보십시오

연결이 설정되면 Stream_Context_get_options () 함수를 사용하여 응용 구성 옵션을 볼 수 있습니다. 이 함수는 모든 구성 옵션을 포함하는 배열을 반환합니다.

 // 현재 스트림에 대한 구성 옵션을 가져오고 표시합니다
$options = stream_context_get_options($context);
echo '<pre>';
print_r($options);
echo '</pre>';

위의 코드는 현재 스트림의 구성 옵션을 인쇄합니다. 예를 들어 HTTP 및 SSL 구성을 설정하면 출력이 다음과 같습니다.

 Array
(
    [http] => Array
        (
            [method] => GET
            [header] => User-Agent: PHP
        )
    [ssl] => Array
        (
            [verify_peer] => 
            [verify_peer_name] => 
        )
)

요약

stream_socket_client ()stream_context_get_options ()를 결합하여 소켓 구성을 쉽게보고 디버그 할 수 있습니다. 연결 시간 초과, 암호화 옵션 또는 기타 사용자 정의 구성 항목을 설정하든 Stream_Context_get_options ()는 적용된 구성을 볼 수 있습니다.

이 기사가 PHP에서 스트리밍 컨텍스트 사용 방법을 더 잘 이해하고 관련 구성을 얻는 방법을 더 잘 이해할 수 있기를 바랍니다.