如何在Linux命令行下发送和接收UDP数据包

众所周知,在传输层有两个常用的协议 TCP 和 UDP,本文介绍在 Linux 命令行下,如何使用 nc 命令发送或接收 UDP 数据包,这些命令的用法对调试 UDP 通信程序将有所帮助,本文适合初学者阅读。

1. 问题的提出

编写了一个使用 raw socket 在数据链路层接收原始 UDP 数据包的程序,调试的时候,需要使用局域网中的另一台机器发送 UDP 数据包,突然发现居然一下子想不出如何在命令行上发送数据包;首先想到的是用 curl,但又一想不对,curl 只能使用应用层协议透过 TCP 协议发送数据包,所以可以发 HTTP 请求包,FTP 请求包等,是不能发送 UDP 数据包的。

终于想起了不怎么使用的 nc 命令,可以很方便地发送 UDP 数据包

2. 文章要点

  1. 理解 Linux 下的 nc 命令;
  2. 使用 nc 命令在网络上发送或接收 UDP 报文;
  3. 抓取 nc 命令发送的 UDP 报文;
  4. 介绍其它可以发送 UDP 报文的命令。

3. netcat 命令

  • nc 是 netcat 的简写,大多数的 Linux 发行版中默认是安装 netcat 的,打开一个终端窗口(ctrl+alt_t),用下面命令检查一下是否已经安装了 netcat:
    1
    
    nc
    
  • 在 ubuntu 20.04 下的输出:
    1
    2
    3
    4
    
    usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
              [-m minttl] [-O length] [-P proxy_username] [-p source_port]
              [-q seconds] [-s source]

相关推荐

  1. 如何Linux命令发送接收UDP数据包

    2023-12-19 04:02:02       43 阅读
  2. UDP发送接受数据

    2023-12-19 04:02:02       40 阅读
  3. Qt中对Udp数据打包发送接收(续)

    2023-12-19 04:02:02       37 阅读
  4. boost asio同步接收发送UDP数据包

    2023-12-19 04:02:02       21 阅读
  5. udp进行数据发送接收

    2023-12-19 04:02:02       38 阅读
  6. vue如何使用websocket去接收数据发送数据

    2023-12-19 04:02:02       18 阅读
  7. linux 命令的计算器

    2023-12-19 04:02:02       40 阅读

最近更新

  1. 24/07/09数据结构(3.1206)数组OJ单链表实现

    2023-12-19 04:02:02       0 阅读
  2. [Flutter] Android Studio pub get 不起作用

    2023-12-19 04:02:02       1 阅读
  3. PHP数据结构之队列

    2023-12-19 04:02:02       1 阅读
  4. C++ override specifier (C++ override 说明符)

    2023-12-19 04:02:02       1 阅读
  5. 兼容问题---ios底部的安全距离css设置

    2023-12-19 04:02:02       1 阅读
  6. 自动驾驶技术的原理

    2023-12-19 04:02:02       1 阅读

热门阅读

  1. PostgreSQL 获取指定根节点及其所有子集的id

    2023-12-19 04:02:02       39 阅读
  2. Vue系列之指令 v-html

    2023-12-19 04:02:02       36 阅读
  3. Electron中Tray的setContextMenu导致窗口无法聚焦

    2023-12-19 04:02:02       35 阅读
  4. 【MySQL】(DDL)总结

    2023-12-19 04:02:02       41 阅读
  5. 常见SQL语句速通

    2023-12-19 04:02:02       33 阅读
  6. spring之基于注解管理Bean

    2023-12-19 04:02:02       33 阅读
  7. 【Unity】如何让Unity程序一打开就运行命令行命令

    2023-12-19 04:02:02       40 阅读
  8. 【redis】redis使用get及set功能,及发布订阅

    2023-12-19 04:02:02       38 阅读
  9. uniapp蓝牙

    2023-12-19 04:02:02       42 阅读
  10. log4j日志打印配置

    2023-12-19 04:02:02       45 阅读
  11. mysql 有哪些日志文件?都有哪些作用?

    2023-12-19 04:02:02       40 阅读