라이브러리

[PHP] socket_recvmsg - 메시지 읽기




socket_recvmsg 함수란?


PHP의 socket_recvmsg 함수는 소켓에서 메시지를 수신하는 함수입니다. 이 함수는 소켓에서 메시지를 읽어와서 메시지의 내용을 반환합니다. socket_recvmsg 함수는 socket_recv 함수와 유사하지만, 메시지 헤더 정보도 함께 반환합니다.

socket_recvmsg 함수의 매개변수


socket_recvmsg 함수의 매개변수는 다음과 같습니다.

- `sock`: 소켓 핸들
- `buf`: 메시지를 저장할 버퍼
- `len`: 버퍼의 크기
- `flags`: 옵션 플래그
- `msg_name`: 메시지의 이름을 저장할 변수
- `msg_namelen`: 메시지 이름의 크기
- `msg_flags`: 메시지 헤더 정보를 저장할 변수

socket_recvmsg 함수의 반환값


socket_recvmsg 함수의 반환값은 다음과 같습니다.

- `bytes_received`: 수신한 메시지의 크기
- `flags`: 메시지 헤더 정보

예제


다음은 socket_recvmsg 함수를 사용한 예제입니다.

#hostingforum.kr
php

<?php



// 소켓 생성

$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

if ($sock === false) {

    echo "소켓 생성 실패
";

    exit;

}



// 소켓 바인딩

if (socket_bind($sock, 'localhost', 12345) === false) {

    echo "소켓 바인딩 실패
";

    exit;

}



// 메시지 수신

$buf = '';

$len = 1024;

$flags = 0;

$msg_name = '';

$msg_namelen = 0;

$msg_flags = 0;



$bytes_received = socket_recvmsg($sock, $buf, $len, $flags, $msg_name, $msg_namelen, $msg_flags);

if ($bytes_received === false) {

    echo "메시지 수신 실패
";

    exit;

}



echo "수신한 메시지: $buf
";

echo "메시지 헤더 정보: $msg_flags
";



// 소켓 닫기

socket_close($sock);



?>



소켓 옵션


socket_recvmsg 함수는 소켓 옵션을 사용할 수 있습니다. 소켓 옵션은 메시지 수신에 영향을 미칩니다. 예를 들어, `MSG_PEEK` 옵션은 메시지를 읽어오지 않고 메시지 헤더 정보만 반환합니다.

다음은 소켓 옵션을 사용한 예제입니다.

#hostingforum.kr
php

<?php



// 소켓 생성

$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

if ($sock === false) {

    echo "소켓 생성 실패
";

    exit;

}



// 소켓 바인딩

if (socket_bind($sock, 'localhost', 12345) === false) {

    echo "소켓 바인딩 실패
";

    exit;

}



// 메시지 수신

$buf = '';

$len = 1024;

$flags = MSG_PEEK;

$msg_name = '';

$msg_namelen = 0;

$msg_flags = 0;



$bytes_received = socket_recvmsg($sock, $buf, $len, $flags, $msg_name, $msg_namelen, $msg_flags);

if ($bytes_received === false) {

    echo "메시지 수신 실패
";

    exit;

}



echo "수신한 메시지 헤더 정보: $msg_flags
";



// 소켓 닫기

socket_close($sock);



?>



결론


socket_recvmsg 함수는 소켓에서 메시지를 수신하는 함수입니다. 이 함수는 메시지 헤더 정보도 함께 반환합니다. 소켓 옵션을 사용하면 메시지 수신에 영향을 미칠 수 있습니다. 예제를 통해 소켓_recvmsg 함수의 사용 방법을 살펴보았습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 180 페이지

검색

게시물 검색