라이브러리
[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` 함수는 데이터를 받을 때 소켓의 주소 정보도 함께 받을 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.