0
PHPでソケットを作成して着信接続を待機するコードを記述しました。特定のポートでリスニングソケットを作成するためのPHPコード(Compute Engineで実行中)
私が選んだポートではなく、ランダムなポートでリッスンするTCPソケットを開く以外は、すべてうまくいっています。
私はGoogle Compute Engine(GCE)でこのコードを実行しています。
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
$address = '35.190.179.17';
//bind socket to specified host
socket_bind($socket, $address,54468);
//listen to port
socket_listen($socket);
リスニングソケットを開くと、そのリスニングソケットは特定のポートにあります。誰かが接続すると、その接続は他のポートに移され/委任されるので、リスニングソケットは新しい接続を引き続き聞くことができます。リスニングソケットはオペレータとして考えてください。より多くの接続のために回線を開いたままにしておく必要があります。 –
私は指定されたポートを使ってtelnetで接続することすらできません。実際にはnetstat -lを使って開いているポートを見つけ、telnetを使ってそのポートに接続します。 –
php.netの例のように、エラーチェックをコードに追加してみるべきです。 socket_xコマンドのいずれかが失敗することがあります。 http://php.net/socket_set_option –