2013-03-27 3 views
0

Проблема: Я хочу установить соединение между сервером Python и клиентом Java. Клиент вызывает исключение:Соединение отказалось между сервером Python и Java-клиентом

java.net.ConnectException: Соединение отклонено: подключение

код сервера:

print('MOTD/name system initialized!') 
     global people 
     welcome = socket.socket() 
     welcome.bind((socket.gethostname(), 31123)) 
     while True: 
      welcome.listen(1) 
      w, nouse = welcome.accept() 
      ... 
      w.send(m.strip().encode()) 
      w.close() 

код клиента:

Socket welcomesocket = new Socket("localhost", 31123); 
BufferedReader motd = new BufferedReader(new InputStreamReader(welcomesocket.getInputStream())); 
servs.set(i, motd.readLine()); 
welcomesocket.close(); 

Проблемы должен быть в Java, соединение Python - Python с одинаковыми условиями работает нормально.

+0

Вы также можете показать соответствующую часть вашего клиентского кода Python? – mthmulders

+0

У меня есть в «Код сервера» – Chauer

ответ

1

Одна проблема заключается в том, что сервер питона является обязательным и принимает на IP-адрес, соответствующий имени сервера, но клиент пытается подключиться к «локальный»; то есть IP-адрес петлевой петли.

Клиент должен использовать то же имя хоста/IP-адрес, что и сервер. И если клиент и сервер на разных машинах, то вы не можете использовать «localhost» вообще. (Имя «localhost» обычно означает адрес обратной связи 127.0.0.*. Как следует из названия, соединение с петлевым адресом «возвращается назад» к хосту, с которого вы подключаетесь, т. Е. Соединение с петлей не удаляется с компьютера/виртуального клиента .

+0

Can вы подробно разбираетесь в методах его исправления? – Chauer

1

На самом деле это похоже на проблему соединения, а не на «Java». Может быть, дополнительная информация о вашей среде поможет.

В то же время:

Если у вас есть клиент Telnet, попробуйте запустить его как «телнет LOCALHOST 31123», это позволит подключиться. Иначе у вас что-то не так с вашим сервером, к которому вы подключаетесь.

С уважением

+0

Как я уже говорил, сервер отлично работает, учитывая, что программа Java является портом (полностью работающий) Python chat. – Chauer

+0

Ну, в соответствии с другим ответом, проблема должна быть решена сейчас. Речь идет о том, как вы подключаетесь к вашему phyton-серверу. Возможно, с помощью порта можно использовать реальное имя компьютера (или IP). почему я запрашивал дополнительную информацию об окружающей среде, это больше проблема конфигурации, чем ошибка Java. – Martin

Смежные вопросы