Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Error: socket_connect() failed: No connection could be made because the target machine actively refused it.
Форумы портала PHP.SU » PHP » Программирование на PHP » Error: socket_connect() failed: No connection could be made because the target machine actively refused it.

Страниц (2): [1] 2 »
 

1. Соц Сеть - 05 Июля, 2012 - 19:08:58 - перейти к сообщению
здравствуйте ! что за ошибка Error: socket_connect() failed: No connection could be made because the target machine actively refused it. вроде все правильно подключен. вот код,сокет пытаемся подключить к денверу что здесь не правильно?
PHP:
скопировать код в буфер обмена
  1.  $address = '127.0.0.1';
  2.     $port    = 10001;
  3.  
  4. echo 'Create socket ... ';
  5.         $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  6.         if ($socket < 0) {
  7.             throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n");
  8.         } else {
  9.             echo "OK\n";
  10.         }
  11.  
  12.         echo 'Connect socket ... ';
  13.         $result = socket_connect($socket, $address, $port);
  14.         if ($result === false) {
  15.             throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n");
  16.         } else {
  17.             echo "OK\n";
  18.         }
2. OrmaJever - 05 Июля, 2012 - 19:15:11 - перейти к сообщению
а что висит на этом порте?
3. Соц Сеть - 05 Июля, 2012 - 19:16:17 - перейти к сообщению
OrmaJever пишет:
а что висит на этом порте?

не знаю ) а нам разве не пустой надо ? как узнать что висит на этом порте или как найти пустой порт я не так уже хорошо знаю про это?
(Добавление)
4. OrmaJever - 05 Июля, 2012 - 19:41:14 - перейти к сообщению
Я конечно с таким не встречался, но если перевести ошибку то там будет "клиент отверг соединение", тоесть вы ему шлёте запрос, а он его не принимает, вот и всё. Это нужно смотреть что ту программу которая слушает этот порт.
5. Соц Сеть - 05 Июля, 2012 - 19:49:41 - перейти к сообщению
OrmaJever пишет:
Я конечно с таким не встречался, но если перевести ошибку то там будет "клиент отверг соединение", тоесть вы ему шлёте запрос, а он его не принимает, вот и всё. Это нужно смотреть что ту программу которая слушает этот порт.

а как смотреть что висит у этого порта ?
6. EuGen - 05 Июля, 2012 - 19:58:02 - перейти к сообщению
Целевая машина (та, которая должна принять соединение), отклоняет его. В общем случае с этим ничего не поделать, но так как речь идет о машине 127.0.0.1 - то есть Вашей же локальной машине, то можете выполнить команду (как я понимаю, ОС у Вас Windows)
CODE (htmlphp):
скопировать код в буфер обмена
  1. netstat -an | find "LISTENING" | find "10001"

- чтобы узнать, что происходит на порту номер 10001
7. Соц Сеть - 05 Июля, 2012 - 21:32:30 - перейти к сообщению
Все это написать В командарм строке windows
8. OrmaJever - 05 Июля, 2012 - 21:37:17 - перейти к сообщению

покажет все открытые порты, а вот как узнать что имено на них висит сказать не могу, посмотрите в диспечере задач.
9. Соц Сеть - 05 Июля, 2012 - 23:27:29 - перейти к сообщению
написал вот такое
TCP 127.0.0.1:10001 0.0.0.0:0 LISTENING
10. EuGen - 05 Июля, 2012 - 23:36:27 - перейти к сообщению
Вот значит что-то слушает на порту 10001. Проверьте - это, случайно, не вторая копия Вашего же скрипта?
А чтобы наверняка найти то, что слушает на этом порту, сделайте:
CODE (htmlphp):
скопировать код в буфер обмена
  1. netstat -aon | find "LISTENING" | find 10001

- у Вас результатом будет некоторая строка, посмотрите на последнее значение в ней (это будет целое число), затем сделайте:
CODE (htmlphp):
скопировать код в буфер обмена
  1. tasklist /FI "PID eq $FPID"

где $FPID - значение, которые Вы нашли на предыдущем шаге.
11. Соц Сеть - 05 Июля, 2012 - 23:48:11 - перейти к сообщению
да наверно тот самый скрипт так как
Image name
httpd.exe

PID
232

Session name
console

Session#
1

Mem Usage
644K

что теперь ?
12. EuGen - 05 Июля, 2012 - 23:55:16 - перейти к сообщению
Ну так завершите его исполнение. Если через консоль, то

- возможно, система имела ввиду собственно веб-сервер в Вашем листинге выше, тогда после выполнения команды Вам нужно будет перезапустить его.
13. Соц Сеть - 06 Июля, 2012 - 00:17:38 - перейти к сообщению
[quote=EuGen]Ну так завершите его исполнение. Если через консоль, то

почему первый раз работает а потом нет?
14. EuGen - 06 Июля, 2012 - 01:13:54 - перейти к сообщению
Соц Сеть пишет:
почему первый раз работает а потом нет?

Что именно первый раз работает? Такое завершение команды? Очевидно потому, что в следующий раз присваивается другой (новый) идентификатор процесса (pid)
15. Соц Сеть - 06 Июля, 2012 - 11:33:27 - перейти к сообщению
EuGen пишет:
Соц Сеть пишет:
почему первый раз работает а потом нет?

Что именно первый раз работает? Такое завершение команды? Очевидно потому, что в следующий раз присваивается другой (новый) идентификатор процесса (pid)

нет нет, первый раз этот ошибка не выводит и сокет сервер работает, а когда обновляю страница браузера выводит ошибка Error: socket_connect() failed: No connection could be made because the target machine actively refused it. значит этот порт уже занят, если так то как мы можем второй раз запускать этот сокет ?
и как можно посмотреть какой порт свободен для этого ip?

 

Powered by ExBB FM 1.0 RC1