socket_recvfrom
연결 지향 여부에 관계없이 소켓에서 데이터 수신
함수 이름 : socket_recvfrom ()
해당 버전 : PHP 4> = 4.1.0, PHP 5, PHP 7
기능 설명 : Socket_recvfrom () 함수는 지정된 소켓에서 데이터를 수신하고 지정된 변수에 발신자의 주소와 포트를 저장합니다.
구문 : int socket_recvfrom (resource $ socket, string & $ buf, int $ len, int $ flags, string & $ name [, int & $ port]).
매개 변수 설명 :
반환 값 : 성공할 때받은 바이트 수를 반환하고 실패시 False를 반환합니다.
샘플 코드 :
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); if ($socket === false) { echo "socket_create() failed: " . socket_strerror(socket_last_error()) . "\n"; exit; } $bind = socket_bind($socket, '0.0.0.0', 8888); if ($bind === false) { echo "socket_bind() failed: " . socket_strerror(socket_last_error($socket)) . "\n"; exit; } $buffer = ''; $senderAddress = ''; $senderPort = 0; // 接收数据并获取发送方的地址和端口$bytes = socket_recvfrom($socket, $buffer, 1024, 0, $senderAddress, $senderPort); if ($bytes === false) { echo "socket_recvfrom() failed: " . socket_strerror(socket_last_error($socket)) . "\n"; exit; } echo "Received $bytes bytes from $senderAddress:$senderPort\n"; echo "Data: $buffer\n"; socket_close($socket);
위의 샘플 코드는 UDP 소켓을 생성하고 로컬 포트 8888에 바인딩합니다. 그런 다음 socket_recvfrom () 함수를 사용하여 데이터를 수신하고 발신자 주소와 포트를 해당 변수에 저장하십시오. 마지막으로 수신 된 데이터, 발신자 주소 및 포트를 출력하고 소켓을 닫습니다.
참고 : 예제는 UDP 소켓을 사용하는 것입니다. TCP 소켓을 사용해야하는 경우 Socket_Recv () 함수를 사용하여 데이터를 수신해야합니다.