linux - 同时发送和接收 UDP 消息

标签 linux bash sockets

可以使用 netcat 在同一个 bash 脚本中发送和接收 UDP 消息吗?

在 Linux 中,我想发送 UDP 消息并在变量中接收其输出以进行进一步处理。理想情况下,我想使用 netcat 在 bash 中执行此操作,但我对其他可能性持开放态度(Java 应该很容易,但如果可以避免的话,我不想安装其他组件)

到目前为止,我可以发出命令echo -ne 'some data' | nc -u 192.168.0.xyz 9760 并通过在另一个窗口中设置监听器 nc -ul 9761 来查看传入信号。但问题是如何在一个进程中完成这一任务,并将输出分配给一个变量?

监听器进程可以在脚本开始时发送到后台吗?如果是这样,当进程完成时它是如何被销毁的?

最佳答案

是的,您可以将监听器设置为背景,如下所示:

nc -ul 9761 >/tmp/foo &
echo -ne 'some data' | nc -u 192.168.0.xyz 9760
wait # waits for the backgrounded command to complete
data=$(</tmp/foo)

关于linux - 同时发送和接收 UDP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21508342/

相关文章:

macos - 如何通过 bash shell 设置代理?

linux - 终端被我的 .sh 字符编码吓坏了。我能做些什么?

linux - 将 eBPF 字节码附加到 SOCK_STREAM 套接字

.net - Delphi 7 中 .NETs NetworkStream/SslStream 的对应物

c - 如何中断一个进程并稍后继续?

c - 如何确保只有一个守护程序副本在运行?

c++ - 是否建议在 bash 脚本中捕获 SIGPIPE?

.net - 套接字发送与发送同步。 send 什么时候真正阻塞?

linux - 我如何在 Linux 中执行单向差异?

linux - qemu-kvm 如何在内部创建 VM 线程?