當前位置: 首頁> 函數類別大全> socket_recvfrom

socket_recvfrom

從套接字接收數據,無論它是否是面向連接的
名稱:socket_recvfrom
分類:套接字Sockets
所屬語言: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:必需,指定要接收的最大字節數。
  • $flags:可選,指定接收數據的標誌,默認為0。
  • $name:必需,用於存儲發送方地址的變量。
  • $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()函數來接收數據。

同類函數
熱門文章