你可以通過創建一個帶有socket_create()
的普通udp套接字並使用socket_bind()
將其綁定到特定的端口來完成。然後使用例如socket_sendto用於指定要發送到的端點和端口。示例代碼如下。
該吐出使用socket_stream_server()
客戶端的端口號和IP地址的簡單的服務器:
<?php
set_time_limit (20);
$socket = stream_socket_server("udp://127.0.0.1:50000",
$errno, $errstr,
STREAM_SERVER_BIND);
if (!$socket) {
die("$errstr ($errno)");
}
do {
$packet = stream_socket_recvfrom($socket, 1, 0, $peer);
echo "$peer\n";
stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($packet !== false);
?>
和客戶端是這樣的:
<?php
$address = '127.0.0.1';
$port = 50001;
$dest_address = '127.0.0.1';
$dest_port = 50000;
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() failed:" . socket_strerror(socket_last_error($sock)) . "\n";
}
$msg = "Ping !";
socket_sendto($sock, $msg, strlen($msg), 0, $dest_address, $dest_port);
socket_close($sock);
?>
運行服務器(在命令行上)在多次運行客戶端時給出此輸出:
<[email protected] php>php server.php
127.0.0.1:50001
127.0.0.1:50001
127.0.0.1:50001
^C
<[email protected] php>
如果您打算使用此公司請記住,您可能需要確保您支持套接字。
– Sebas 2009-07-03 04:44:01