Хм, похоже, вы взяли этот пример прямо с справочной страницы PHP для socket_bind () .Я предполагаю, что, кроме того, вы не изменили ни один код, и у вас не установлена машина на 127.0.0.2.Это ваша проблема.
Помните, пример кода - это просто пример кода.Вот рабочий пример, основанный на примере кода, который просматривает случайный IP-адрес Google.Я также добавил функцию socket_read (), чтобы вы могли видеть часть данных (ну, 1024 байта), которые вы возвращаете.
<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// An example list of IP addresses owned by the computer
$sourceips['google'] = '74.125.127.103';
// Bind the source address
socket_bind($sock, $sourceips['google']);
// Connect to destination address
socket_connect($sock, $sourceips['google'], 80);
// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
'Host: google.com' . "\r\n\r\n";
socket_write($sock, $request);
// You'll get some HTTP header information here,
// and maybe a bit of HTML for fun!
print socket_read($sock, 1024);
// Close
socket_close($sock);
?>