如果您未指定端口號或指定為 0,則會選擇一個隨機的可用端口。
若要在同一台機器上的用戶端/伺服器之間使用端口進行 ipc,您可以使用(減去錯誤檢查)
server.php
<?php
$sock = socket_create_listen(0);
socket_getsockname($sock, $addr, $port);
print "伺服器監聽於 $addr:$port\n";
$fp = fopen($port_file, 'w');
fwrite($fp, $port);
fclose($fp);
while($c = socket_accept($sock)) {
socket_getpeername($c, $raddr, $rport);
print "收到來自 $raddr:$rport 的連線\n";
}
socket_close($sock);
?>
client.php (客戶端程式)
<?php
$fp = fopen($port_file, 'r');
$port = fgets($fp, 1024);
fclose($fp);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_connect($sock, '127.0.0.1', $port);
socket_close($sock);
?>