PHP でソケットを使用して、特定の IP とポートへの単純な TCP/IP 接続を確立しようとしています。
「ノンブロッキング ソケット操作をすぐに完了できませんでした」というエラー メッセージが表示されます。以下は私のコードです:
<?php
$address = 'myhost.com';
$service_port = 1234;
$timeout = 1000;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_nonblock($socket);
$error = NULL;
$attempts = 0;
while (!($connected = @socket_connect($socket, $address, $service_port)) && ($attempts < $timeout)) {
$error = socket_last_error();
if ($error != SOCKET_EINPROGRESS && $error != SOCKET_EALREADY) {
echo socket_strerror($error) . "\n";
socket_close($socket);
return NULL;
}
usleep(1000);
$attempts++;
}
?>
何か案は?ターゲット ホストの IP またはポートに問題がないことはわかっています。