0

Windows 7 を使用して、コマンド ラインで PHP 経由で IRC サーバーに接続しようとしています。

これを実行するたびに:

$socket = fsockopen($irc_server, 6667, $errno, $errstr, 5);

$errno= 0、$errstr= "" および$socket= 'リソース ID #4' (を使用die($socket);)

これの原因は何ですか。また、これをさらにデバッグするにはどうすればよいですか。

次のコード:

$s = fsockopen("google.com", 80, $errno, $errstr, 5);
die($errno.", ".$errstr.", ".$s);

...以下を返します。

0, , Resource id #4

使えません$socket。使用しようとすると「無効なリソース」と表示されます。また、PHP のドキュメントには、errno 0 はソケットが間違って開かれていることを示していると記載されています。

助けていただければ幸いです。

4

3 に答える 3

2

あなたのコードをもう少し見せてもらえますか?

このコードで何が起こるか:

$s = fsockopen($irc_server, 6667, $errno, $errstr, 5);
if ($s === false) {
  die($errno.", ".$errstr.", ".$s);
} else {
  // your code with socket
  die("Valid socket resource");
}

?

于 2010-07-09T22:24:07.157 に答える
1

それを私が直した。

function irCmd は $socket を知らなかったので、これを前に置きました:

global $socket;

そしてそれはうまくいきました。本当にありがとう!

于 2010-07-09T22:36:06.720 に答える
0

ドキュメントには次のように書かれています(私のものを強調してください):

で返された値errnoが 0で、関数が を返しFALSEconnect()た場合、呼び出しの前にエラーが発生したことを示しています。これは、ソケットの初期化の問題が原因である可能性が最も高いです。

関数は false を返さなかったので、ソケットは有効です。さらに問題がある場合は、その内容をお知らせください。fsockopenここで正常に戻りました。

于 2010-07-09T22:31:54.370 に答える