2

タイトルはそれをすべて説明しています...

TCP プロトコルを使用して IP に接続し、応答を読み取り/取得するにはどうすればよいですか? 私はたくさん検索しましたが、解決策は見つかりませんでした。

$socket = stream_socket_server("tcp://127.0.0.1:22", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
echo fread($conn, 26);
    fclose($conn);
  }
  fclose($socket);
}

このコードは大丈夫ですか?仕事はしますか?役立たずらしいので…

前もって感謝します

4

2 に答える 2

1

http://php.net/stream_socket_acceptから

stream_socket_server() によって以前に作成されたソケットで接続を受け入れます。

つまり、1 つのクライアントが接続を希望するのを待ちます。(ポートにバインドするだけで、何も接続しません)

また、 fread も socket_* 関数で使用するのに不適切な関数です。正しい関数は stream_socket_recvfrom() です。


しかし、これはあなたが望んでいるように見えるものではありません。どこかへの接続を開きたいようです。したがって、 fsockopen() が適切な関数です。

$conn = fsockopen("127.0.0.1", 22, $errno, $errstr);
if (!$conn) {
  echo "$errstr ($errno)<br />\n";
} else {
  echo fread($conn, 26);
  fclose($socket);
}
于 2013-08-28T00:58:14.543 に答える