현재 위치: > 최신 기사 목록> socket_strerror ()로 자세한 오류 로그를 인쇄 한 후 오류를 지우십시오.

socket_strerror ()로 자세한 오류 로그를 인쇄 한 후 오류를 지우십시오.

M66 2025-05-29

오류 처리는 PHP를 사용하여 소켓을 프로그래밍 할 때 매우 중요하지만 간과되는 링크입니다. 네트워크 연결, 데이터 전송 등을 수행하는 경우 오류 메시지가 문제를 신속하게 찾는 데 도움이 될 수 있습니다. PHP는 소켓 오류 메시지를 처리하고 인쇄하기 위해 Socket_clear_Error ()Socket_strerror () 의 두 가지 주요 기능을 제공합니다.

1. 기본 개념

  • socket_strerror () :이 함수는 오류 코드를 수신하고 (일반적으로 socket_last_error () 를 통해 얻음)를 수신하고 해당 오류 메시지 문자열을 반환합니다.

  • socket_clear_error () : 이전 소켓의 오류 정보를 지우는 데 사용되거나 전 세계적으로 오래된 오류가 후속 판단에 영향을 미치지 않도록합니다.

이 두 기능은 개발자가 처리 된 오류 로그를 녹음하는 동안 오류 로그를 제거하는 데 도움이되며 후속 작업을위한 깨끗한 환경을 제공하는 데 도움이 될 수 있습니다.

2. 예제를 사용하십시오

일반적인 사용 시나리오를 살펴 보겠습니다. 존재하지 않는 서버 주소에 연결하고 오류를 포착하십시오.

 <?php

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
    die("Socket 창조가 실패했습니다: " . socket_strerror(socket_last_error()) . "\n");
}

$host = 'm66.net'; // 샘플 도메인 이름
$port = 12345;

$result = @socket_connect($socket, $host, $port);
if (!$result) {
    $errorCode = socket_last_error($socket);
    $errorMsg = socket_strerror($errorCode);

    // 인쇄 로그
    error_log("연결이 실패했습니다 [{$errorCode}]: {$errorMsg}");

    // 명확한 오류
    socket_clear_error($socket);
}

socket_close($socket);

위 코드에서 :

  1. @socket_connect를 사용하여 기본 오류 메시지를 억제하십시오.

  2. Socket_last_error ()를 사용하여 오류 코드를 얻습니다.

  3. 읽을 수있는 오류 정보를 얻으려면 socket_strerror ()를 호출합니다.

  4. 로그를 인쇄하려면 Error_Log () 를 사용하십시오.

  5. 마지막으로 Socket_clear_Error ()를 사용하여 잔류 오류가 후속 처리에 영향을 미치지 않도록 오류를 지우십시오.

3. 주목할만한 것들

  • 소켓 매개 변수를 Socket_last_error () 또는 Socket_clear_error () 로 전달하지 않으면 최신 소켓 오류 (글로벌 레벨)에서 작동합니다.

  • 오류를 지우는 것은 소켓 상태를 재설정하지 않으며 치명적인 오류가 발생하면 소켓이 여전히 닫히고 재현되어야합니다.

  • 로깅 로그는 개발자가 다른 환경에서 특정 의미를 찾을 수 있도록 오류 코드가 포함되어 있음을 시사합니다.

4. 일반적인 용도

  • 서버 개발 : 서버가 클라이언트 연결에 리리스하는 이유를 기록합니다.

  • 자동화 스크립트 : 레트리 메커니즘은 네트워크 작업 실패 후 명확한 오류 코드에 의존합니다.

  • 디버깅 도구 : 개발 중에 오류 로그 시각화는 포지셔닝 효율을 향상시킵니다.

5. 요약

네트워크 프로그래밍에서 오류 처리 메커니즘의 품질은 종종 프로젝트의 유지 가능성을 결정합니다. Socket_strerror () 를 통해 명확한 오류 정보를 얻은 다음 Socket_clear_error ()를 사용하여 환경 잔류 물을 제거하여 개발자가 PHP 프로그램을 더 강력하고 쉽게 쓰는 데 도움이 될 수 있습니다. 다음에 연결 실패 또는 통신 예외가 발생하면이 두 기능을 사용하여 그 이유에 대한 통찰력을 얻을 수도 있습니다.