현재 위치: > 함수 카테고리 모음> socket_recvfrom

socket_recvfrom

연결 지향 여부에 관계없이 소켓에서 데이터 수신
이름:socket_recvfrom
분류:소켓
사용 언어:php
한 줄 설명:지정된 소켓에서 데이터를 수신하고 지정된 변수에 발신자 주소와 포트를 저장합니다.

함수 이름 : 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]).

매개 변수 설명 :

  • $ socket : 필수, 지정된 소켓 리소스.
  • $ buf : 필요한, 수신 된 데이터를 저장하는 데 사용되는 가변.
  • $ len : 필수, 수신 할 최대 바이트 수를 지정합니다.
  • $ 플래그 : 선택 사항, 데이터 수신에 대한 플래그를 지정하고 기본값은 0입니다.
  • $ 이름 : 필수, 변수는 발신자 주소를 저장하는 데 사용됩니다.
  • $ port : 선택 사항, 발신자의 포트 변수를 저장하는 데 사용되며 기본값은 0입니다.

반환 값 : 성공할 때받은 바이트 수를 반환하고 실패시 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 () 함수를 사용하여 데이터를 수신해야합니다.

유사한 함수
인기 기사