在 Ubuntu 上安装基本 UDP 服务器

在 Ubuntu 上安装基本 UDP 服务器

我正在做一些代码测试,其中一个方面是我需要一个主动的UDP 服务器。我尝试过在网上查找如何安装,但是没有找到。

我唯一的要求是一个 UDP 服务器,我可以用我的代码连接它并检索一个简单的响应。

我正在使用 Ubuntu 16.04 Xenial。

有人可以帮忙吗?

我的问题是提供一个我可以使用的 UDP 服务器。

我看到了 Arcserve UDP 代理 (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

答案1

尝试 netcat:

nc -u -l 12345 < /dev/zero

它将启动简单的服务器,通过端口 12345 向您发送零值字节。

或者:

echo "pingpong" | nc -u -l 12345

如果您想要简单的文本答案。

答案2

您可以安装 dnsmasq 来监听端口 53/udp。这个方法比较简单。

您可以在 udp 上启动一个 python 监听器。

 #/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))

相关内容