0

だから私はこれに頭を悩ませようとしています....

ポートを開放します

 $remip = $_SERVER['SERVER_ADDR']; //Grab my server address

 $fp = fsockopen($remip, 80, $errno, $errstr, 10);//Godaddy hosting only 80 and 443 ports work
  //fsockopen(ip address , port, IDK, IDK, timeout delay)

したがって、ポートが開いているか、そうでない場合はエラーチェックを確認してください

if (!$fp) { echo "$errstr ($errno)<br>\n"; exit; } //Not sure what this echos out but its clear how it stops errors

ポートが開いたので、どの IP/クライアントもこのポートに接続できますか????

これで接続できると思います....

したがって、クライアントでサーバーのIPアドレスポートTCP接続へのソケットを開きます.....

phpファイルには次のようなものが含まれています

else {$out = "hello, 80\r\n"; //out specifies the string to be written , bytes to write
      fwrite($fp, $out); //$fp is the handle
       fclose($fp)}//close the connection  

この時点で、私のクライアントが hello を受け取ったと仮定するのは間違っています..

接続を閉じて終了

私はこれにまったく慣れていないので、ここでいくつかのサンプルコードを理解しようとしています...では、このソケットはどのくらい開いていますか? このポートを開いたままにしたい場合は、cron ジョブを実行してこのファイルを定期的に起動する必要がありますか。

私はここで何か間違っていると100%確信しているので、私をまっすぐにしてください.

4

2 に答える 2

0

fsockopen の機能について誤解していると思います。あなたの例では、 fsockopen は実際にはポート 80 を開きません (サーバーソケットを開く場合のように) が、サーバー自体のポート 80 に接続するクライアントソケットを開きます。実際には、(完全ではない)乱数を取得する(クライアント)ポートを開きます。fsockopen を使用して接続した後、GET /index.php などの HTTP コマンドを Web サーバーに送信できます。

于 2013-07-29T03:55:20.697 に答える