개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.20 20:33

stream_socket_recvfrom 함수 사용 시 오류 발생

목록
  • 크래시헌터 10일 전 2025.05.20 20:33
  • 19
    1
저는 현재 TCP 소켓을 통해 데이터를 전송하고 받는 프로그램을 개발 중입니다.
stream_socket_recvfrom 함수를 사용하여 데이터를 받으려고 합니다.
하지만 이 함수를 사용할 때 데이터를 받을 때 일부 데이터가 잘못된 위치에 저장되는 오류가 발생하고 있습니다.

stream_socket_recvfrom 함수의 사용법을 다시 확인해 보았지만, 문제가 되는 부분을 찾을 수 없습니다.
따라서 stream_socket_recvfrom 함수의 사용법과 관련하여 도움을 부탁드립니다.

stream_socket_recvfrom 함수의 리턴 값이 제대로 데이터를 받았는지 확인하는 방법과,
데이터가 잘못된 위치에 저장되는 오류를 해결하는 방법을 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  10일 전



    stream_socket_recvfrom 함수는 TCP 소켓에서 데이터를 수신하는 함수입니다. 이 함수의 리턴 값은 수신한 데이터의 크기와 수신한 데이터의 소켓 주소를 포함하는 배열입니다.

    리턴 값이 제대로 데이터를 받았는지 확인하는 방법은 다음과 같습니다.

    1. 리턴 값의 크기를 확인하여 데이터를 받았는지 확인합니다. 만약 리턴 값의 크기가 0이면 데이터를 받지 못한 것입니다.
    2. 수신한 데이터를 확인하여 올바른 데이터인지 확인합니다.

    데이터가 잘못된 위치에 저장되는 오류를 해결하는 방법은 다음과 같습니다.

    1. 데이터를 받을 때마다 수신한 데이터의 크기를 확인하여 데이터를 받았는지 확인합니다.
    2. 수신한 데이터를 확인하여 올바른 데이터인지 확인합니다.
    3. 데이터를 받을 때마다 데이터의 위치를 확인하여 올바른 위치에 저장되는지 확인합니다.

    예를 들어, 다음과 같이 stream_socket_recvfrom 함수를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $sock = stream_socket_server("tcp://localhost:8080", $errno, $errstr);
    
    $buf = '';
    
    $from = '';
    
    $len = stream_socket_recvfrom($sock, $buf, 1024, 0, $from, $flags);
    
    if ($len === false) {
    
        echo "Error: $errstr ($errno)n";
    
    } else {
    
        echo "Received $len bytes from $fromn";
    
        echo "Data: $bufn";
    
    }
    
    


    이 예제에서는 stream_socket_recvfrom 함수를 사용하여 데이터를 수신하고, 수신한 데이터의 크기와 소켓 주소를 확인합니다.

    2025-05-20 20:34

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,782건 / 27 페이지

검색

게시물 검색