私は次のコードでPHPのTCP/IPサーバーを作成しようとしている:私は、ランダムに3804ポートで動作するように選択しましたPHPのソケット接続
<?php
// set some variables
$host = "localhost";
$port = 3804;
// don't timeout!
set_time_limit(0);
// create socket
$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
// bind socket to port
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
// start listening for connections
$result = socket_listen($socket, 3) or die("Could not set up socket listener\n");
// accept incoming connections
// spawn another socket to handle communication
$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");
// read client input
$input = socket_read($spawn, 1024) or die("Could not read input\n");
// clean up input string
$input = trim($input);
// reverse client input and send back
$output = strrev($input) . "\n";
socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");
// close sockets
socket_close($spawn);
socket_close($socket);
?>
を、私はにtelnet接続しようとしているときそのポート上の私のホスト私は接続を行うことができません..私のPHPスクリプトがそのポートを聞くことができるようにするには、PHPのスクリプトがホストされているサーバーで行う必要がある以上の設定ですか?
ローカルホストを本物のIPに変更しました。 私はサーバーの管理者ではありません。そのUNIXサーバーと私は/ etc/servicesファイルを見てきました。ポート50000は何にでも登録されていないことがわかりました。私はもっと何を試すことができますか?またはサーバーでどのような設定を行う必要がありますか? –
まあ、どんなエラーがありますか?正確なエラー(およびおそらくパケットダンプ)がなければ、問題を特定することは不可能です。 3804と50000の両方が登録されていませんが、登録されたポートを選択することは禁じられていません。 – phihag
エラーは次のとおりです。ホストからポート50000への接続が開けませんでした:接続に失敗しました –