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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Error: socket_connect() failed: No connection could be made because the target machine actively refused it.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Соц Сеть
Отправлено: 05 Июля, 2012 - 19:08:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




здравствуйте ! что за ошибка 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.         }

(Отредактировано автором: 05 Июля, 2012 - 19:10:53)

 
 Top
OrmaJever Модератор
Отправлено: 05 Июля, 2012 - 19:15:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




а что висит на этом порте?


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Соц Сеть
Отправлено: 05 Июля, 2012 - 19:16:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
а что висит на этом порте?

не знаю ) а нам разве не пустой надо ? как узнать что висит на этом порте или как найти пустой порт я не так уже хорошо знаю про это?
(Добавление)

(Отредактировано автором: 05 Июля, 2012 - 19:25:22)

 
 Top
OrmaJever Модератор
Отправлено: 05 Июля, 2012 - 19:41:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Я конечно с таким не встречался, но если перевести ошибку то там будет "клиент отверг соединение", тоесть вы ему шлёте запрос, а он его не принимает, вот и всё. Это нужно смотреть что ту программу которая слушает этот порт.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Соц Сеть
Отправлено: 05 Июля, 2012 - 19:49:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




OrmaJever пишет:
Я конечно с таким не встречался, но если перевести ошибку то там будет "клиент отверг соединение", тоесть вы ему шлёте запрос, а он его не принимает, вот и всё. Это нужно смотреть что ту программу которая слушает этот порт.

а как смотреть что висит у этого порта ?
 
 Top
EuGen Администратор
Отправлено: 05 Июля, 2012 - 19:58:02
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




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

- чтобы узнать, что происходит на порту номер 10001


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Соц Сеть
Отправлено: 05 Июля, 2012 - 21:32:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Все это написать В командарм строке windows
 
 Top
OrmaJever Модератор
Отправлено: 05 Июля, 2012 - 21:37:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)





покажет все открытые порты, а вот как узнать что имено на них висит сказать не могу, посмотрите в диспечере задач.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Соц Сеть
Отправлено: 05 Июля, 2012 - 23:27:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




написал вот такое
TCP 127.0.0.1:10001 0.0.0.0:0 LISTENING
 
 Top
EuGen Администратор
Отправлено: 05 Июля, 2012 - 23:36:27
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вот значит что-то слушает на порту 10001. Проверьте - это, случайно, не вторая копия Вашего же скрипта?
А чтобы наверняка найти то, что слушает на этом порту, сделайте:
CODE (htmlphp):
скопировать код в буфер обмена
  1. netstat -aon | find "LISTENING" | find 10001

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

где $FPID - значение, которые Вы нашли на предыдущем шаге.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Соц Сеть
Отправлено: 05 Июля, 2012 - 23:48:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




да наверно тот самый скрипт так как
Image name
httpd.exe

PID
232

Session name
console

Session#
1

Mem Usage
644K

что теперь ?

(Отредактировано автором: 05 Июля, 2012 - 23:49:21)

 
 Top
EuGen Администратор
Отправлено: 05 Июля, 2012 - 23:55:16
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Ну так завершите его исполнение. Если через консоль, то

- возможно, система имела ввиду собственно веб-сервер в Вашем листинге выше, тогда после выполнения команды Вам нужно будет перезапустить его.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Соц Сеть
Отправлено: 06 Июля, 2012 - 00:17:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




[quote=EuGen]Ну так завершите его исполнение. Если через консоль, то

почему первый раз работает а потом нет?

(Отредактировано автором: 06 Июля, 2012 - 00:18:39)

 
 Top
EuGen Администратор
Отправлено: 06 Июля, 2012 - 01:13:54
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Соц Сеть пишет:
почему первый раз работает а потом нет?

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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Соц Сеть
Отправлено: 06 Июля, 2012 - 11:33:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




EuGen пишет:
Соц Сеть пишет:
почему первый раз работает а потом нет?

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

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

(Отредактировано автором: 06 Июля, 2012 - 11:34:26)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB