Назад | Перейти на главную страницу

Установите базовый UDP-сервер в Ubuntu

Я провожу тестирование кода, и один из аспектов - мне нужен активный UDP сервер. Я пробовал искать в Интернете, как его установить, и мне не повезло.

Мое единственное требование - это UDP-сервер, к которому я могу подключиться с помощью своего кода и получить простой ответ.

Я использую Ubuntu 16.04 Xenial.

Может ли кто-нибудь помочь в этом.

Моя задача - предоставить UDP-сервер, который я могу использовать.

Я вижу Arcserve UDP Agent (Linux), но не уверен, потому что это может быть для резервного копирования

Я тоже вижу netcat, но как мне отправить ответ? Спасибо!

ОБНОВИТЬ

Вот что я пробовал:

root@ubuntuT:/home/jon/gocode/udpserv# echo "pingpong" | nc -u 127.0.0.1 -l 12345 &
[5] 36067
root@ubuntuT:/home/jon/gocode/udpserv# curl http://127.0.0.1:12345
curl: (7) Failed to connect to 127.0.0.1 port 12345: Connection refused

Попробуйте netcat:

nc -u -l 12345 < /dev/zero

Он запустит простой сервер, который отправит вам байты с нулевым значением на порт 12345.

или:

echo "pingpong" | nc -u -l 12345

если вы хотите простой текстовый ответ.

Вы можете установить dnsmasq для прослушивания порта 53 / udp. Это быстро.

Вы можете запустить прослушиватель python на udp.

 #/usr/bin/env/python3 
 #Python UDP Listener, listening on localhost 1025, change address 
 # to listen on other ip/port combos. 
 import socket

 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 sock.bind(('127.0.0.1', 1025))

 while True:
    data, address = sock.recvfrom(65538)
    text = data.decode('ascii')
    print('Connection from Client{} says {}'.format(address, text))
    text = 'Your data was {} bytes long'.format(len(data))
    data = text.encode('ascii')
    sock.sendto(data, address)

Если вам нужен клиент, это сработает.

#/usr/bin/env/python3 
#UDP Client

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
text = 'Hello World'
data = text.encode('ascii')
sock.sendto(data, ('127.0.0.1', 1025))
data, address = sock.recvfrom(65538) 




#text = data.decode('ascii')
#print('The server {} replied {}'.format(address, text))