Два компьютера в локальной сети, подключающиеся к беспроводному маршрутизатору, один 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()
Да, конечно, межсетевой экран допускает любые виды потоков – nonemaw
1) Отключите оба брандмауэра и проверьте его. – Chet
2) Отправьте очень маленькую дейтаграмму. Может быть, он падает. – Chet