• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

使用 netcat 只发送 UDP 数据包?

用户头像
it1352
帮助1

问题说明

我只想在 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.

正确答案

#1

如果你用的是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.

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /reply/detail/tanhcfgihg
系列文章
更多 icon
同类精品
更多 icon
继续加载