Я пытаюсь написать скрипт python, который будет прослушивать UDP (произвольный порт 1234) в Ubuntu MATE (работает на Odroid XU-4). Для этого я нашел код для установления соединения и связи через него с помощью модуля python socket
. Код выглядит следующим образом:UDP Связь через Python не создает активное подключение к Интернету
import socket
port = 1234
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.bind(("localhost", port))
except socket.error , msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
print 'Socket bind complete'
print "waiting on port:", port
while 1:
data, addr = s.recvfrom(1024)
print data
Этот код не был написан сам, но очень прост. Запуск этого сценария через терминал не вызывает сообщений об ошибках. В соответствии с выходом создается сокет, и соединение было успешным. Беда в том, что учебник, из которого я получил это, говорит, чтобы общаться с этим скриптом, открывая клиентское соединение через новый терминал, сделает трюк. Что-то вроде:
-$ ncat localhost 1234 -u
Снова нет сообщений об ошибках. Как только я пытаюсь отправить пакет данных (обычный текст, например, «тест»), я получаю ошибку:
Ncat: Connection refused.
В попытке устранения неисправностей себя, я побежал отдельное окно терминала, чтобы контролировать все UDP-соединение с корневым доступом.
netstat -u
При выполнении сценария, я предполагаю, чтобы найти порт 1234 на netstat
список, но я этого не делаю. Это означает, что скрипт python не создает и не привязывает к UDP-порту 1234, но он считает, что это так.
Однако открытие того же UDP-порта с использованием netcat
непосредственно через терминал.
Из этого я знаю, что проблема должна иметь какое-то отношение к скрипту python. Что может быть неправильным на стороне скрипта/питона, чтобы не установить соединение, но думайте, что это так?
Заранее благодарен!
Я только что запустил это, и порт открыт. Я сделал немного больше копания, и теперь я могу получить вариант этого кода для работы с использованием TCP, но не UDP. Я бы хотел UDP. Спасибо за предложение! –