Я пишу UDP-сервер и клиент, используя Python. Код прост. Когда клиент udp отправляет данные на сервер, сервер отвечает клиенту на сообщение.
Код сервера выглядит следующим образом, имя файла «serverudp.py».
#!/usr/bin/env python
from socket import *
HOST = ''
PORT = 19998
s = socket(AF_INET,SOCK_DGRAM)
s.bind((HOST,PORT))
print '...waiting for message..'
while True:
data,address = s.recvfrom(1024)
print data,address
s.sendto('this is the UDP server',address)
s.close()
Код клиента следующий, имя файла «clientudp.py»
#!/usr/bin/env python
from socket import *
HOST='10.0.0.12'
PORT=19998
addr=(HOST,PORT)
s = socket(AF_INET,SOCK_DGRAM)
s.connect(addr)
while True:
message = raw_input('send message:>>')
s.sendto(message, addr)
data = s.recv(1024)
print data
s.close()
Клиент не может получить никакого ответа. Однако, если я прокомментирую следующее
подключить строку в коде клиента, она работает правильно.
#s.connect(addr)
Поскольку этот же клиентский код хорошо работает на другом компьютере Linux с линией connect , я хочу знать, в чем проблема с моим компьютером Linux? Есть ли какие-либо ограничения ядра Linux или сокета TCP / UDP с ним?
Надеюсь, ваши ответы, спасибо!