如何使用 netcat 只发送一个 UDP 数据包? [英] How to send only one UDP packet with netcat?

查看:27
本文介绍了如何使用 netcat 只发送一个 UDP 数据包?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只想在 UDP 数据包中发送一个短值,但运行命令

I want to send only one short value in a UDP packet, but running the command

echo -n "hello" | nc -4u localhost 8000

我可以看到服务器正在获取 hello 内容,但我必须按 Ctrl+c 退出 netcat 命令.

I can see that the server is getting the hello stuff but I have to press Ctrl+c to quit the netcat command.

发送hello后如何让它退出?

对不起,因为噪音,我重新阅读了手册页并找到了 -q 选项.

Sorry, for the noise, I re-read the man page and found the -q option.

 echo -n "hello" | nc -4u -q1 localhost 8000

有效(1 秒后退出).

works (it quits after 1 second).

由于某种原因,它不适用于 -q0.

For some reason it does not work with -q0.

推荐答案

如果你用的是bash,不妨写

If you are using bash, you might as well write

echo -n "hello" >/dev/udp/localhost/8000

并避免 netcat 的所有特质和不兼容性.

and avoid all the idiosyncrasies and incompatibilities of netcat.

这也适用于发送到其他主机,例如:

This also works sending to other hosts, ex:

echo -n "hello" >/dev/udp/remotehost/8000

这些不是文件系统上的真实"设备,而是 bash特殊"别名.Bash 手册中有更多信息.

These are not "real" devices on the file system, but bash "special" aliases. There is additional information in the Bash Manual.

这篇关于如何使用 netcat 只发送一个 UDP 数据包?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆