라이브러리

[PHP] socket_recvfrom - 연결 지향형인지 아닌지에 관계없이 소켓에서 데이터를 수신합니다.




Socket recvfrom 함수

PHP의 `socket_recvfrom` 함수는 소켓에서 데이터를 받는 함수입니다. 이 함수는 TCP/IP 소켓에서 데이터를 받는 데 사용됩니다. 이 함수는 소켓에서 데이터를 받을 때 사용하는 함수로, `socket_recv` 함수와 유사하지만, 소켓에서 데이터를 받을 때 소켓의 주소 정보도 함께 받을 수 있습니다.

함수 구조

`socket_recvfrom` 함수의 구조는 다음과 같습니다.

#hostingforum.kr
php

string socket_recvfrom ( resource $sock , string &$address , int $port , int $flags )



* `$sock`: 소켓 자원
* `$address`: 소켓의 주소 정보를 저장할 변수
* `$port`: 소켓의 포트 번호
* `$flags`: 옵션 플래그

함수 옵션 플래그

`socket_recvfrom` 함수의 옵션 플래그는 다음과 같습니다.

* `MSG_PEEK`: 데이터를 읽지 않고 소켓의 내용을 확인합니다.
* `MSG_DONTROUTE`: 데이터를 읽을 때 라우팅 정보를 무시합니다.
* `MSG_DONTWAIT`: 데이터를 읽을 때 블록킹을 무시합니다.

예제

다음은 `socket_recvfrom` 함수의 예제입니다.

#hostingforum.kr
php

<?php



// 소켓 생성

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

if ($sock === false) {

    echo "소켓 생성 실패";

    exit;

}



// 소켓 주소 설정

socket_bind($sock, 'localhost', 8080);



// 데이터 받기

$address = '';

$port = 0;

$flags = 0;

$data = socket_recvfrom($sock, $address, $port, $flags);

if ($data === false) {

    echo "데이터 받기 실패";

    exit;

}



// 데이터 출력

echo "받은 데이터: $data
";

echo "소켓 주소: $address:$port
";



// 소켓 닫기

socket_close($sock);



?>



이 예제에서는 UDP 소켓을 생성하고, 소켓 주소에 바인딩을 설정한 후, 데이터를 받는 과정을 보여줍니다. 받은 데이터와 소켓 주소 정보를 출력합니다.

참고

* `socket_recvfrom` 함수는 TCP/IP 소켓에서만 사용할 수 있습니다.
* `socket_recvfrom` 함수는 블록킹을 사용하므로, 데이터를 받을 때까지 기다립니다.
* `socket_recvfrom` 함수는 데이터를 받을 때 소켓의 주소 정보도 함께 받을 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색