2015-10-12 2 views
0

Два компьютера в локальной сети, подключающиеся к беспроводному маршрутизатору, один IP-адрес - 192.168.1.106 (сервер), другой - 192.168.1.107 (клиент), шлюз на оба компьютера - 192.168.1.1 (сам маршрутизатор).Ошибка связи между двумя компьютерами через сокет Python в локальной сети

Два компьютера могут пинговать каждый в двух направлениях, что означает, что не должно быть проблем с маршрутизацией и самим маршрутизатором. Но я потерпел неудачу, когда попытался использовать сокет UDP Python, сервер не может получить какую-либо информацию от клиента, и это произошло при изменении IP-адреса. (Но это хорошо работает, когда клиент и сервер находятся на одном компьютере, используя локальный адрес IP, так что код должен быть в порядке)

Я использую следующий код:

сервер:

import socket 

address = ('192.168.1.106', 5678) # the server listening on address 192.168.1.106 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind(address) 

while True: 
    data, addr = s.recvfrom(2048) 
    if data == "empty": 
     print "no data from client" 
    else: 
     print "received:", data, "from", addr 

s.close() 

клиент:

import socket 

address = ('192.168.1.106', 5678) # the client send to address 192.168.1.106 
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 

while True: 
    msg = raw_input() 
    if not msg: 
     msg = "empty" 
    s.sendto(msg, address) 

s.close() 

ответ

0

ли вы открыть порт UDP на межсетевом экране на обоих comoutera?

+0

Да, конечно, межсетевой экран допускает любые виды потоков – nonemaw

+0

1) Отключите оба брандмауэра и проверьте его. – Chet

+0

2) Отправьте очень маленькую дейтаграмму. Может быть, он падает. – Chet

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