fsockopen не работает? - PullRequest
       7

fsockopen не работает?

0 голосов
/ 10 июля 2010

Я пытаюсь подключиться к серверу IRC через PHP из командной строки, используя Windows 7.

Каждый раз при запуске этого:

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

$errno = 0, $errstr = "" и $socket = 'Resource id # 4' (с использованием die($socket);)

В чем причина этого и как я могу отладить больше в этом.

следующий код:

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

... возвращает следующее:

0, , Resource id #4

Я не могу использовать $socket.Когда я пытаюсь его использовать, он говорит «Неверный ресурс».Также в документации PHP отмечается, что errno 0 указывает на неправильно открытый сокет.

Помощь приветствуется.

Ответы [ 3 ]

2 голосов
/ 10 июля 2010

Не могли бы вы показать нам немного больше своего кода?

Что происходит с этим кодом:

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

?

1 голос
/ 10 июля 2010

Я исправил это.

Функция irCmd не знала $ socket, поэтому я поставил перед ним:

global $socket;

И это сработало.Большое спасибо!

0 голосов
/ 10 июля 2010

В документации сказано (выделено мое):

Если значение, возвращаемое в errno, равно 0 , а функция вернула FALSE, это означает, что ошибка произошла до вызова connect(). Скорее всего, это связано с проблемой инициализации сокета.

Поскольку функция не вернула false, сокет действителен. Если у вас возникли дополнительные проблемы, сообщите нам, что они есть; fsockopen вернулся сюда нормально.

...