生成并发送数据包的 C 代码

发布于 2024-09-14 05:31:20 字数 1539 浏览 5 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春夜浅 2024-09-21 05:31:20

下面是两个通过 UDP 套接字进行通信的程序的非常简单的代码示例:一个代码列表创建并发送一个数据包,另一个代码列表接收该数据包。

http://www.abc.se/~m6695/udp.html

注意这些网络函数不是 C 语言本身的一部分,C 语言本身没有网络支持,但它们是标准的(POSIX,我认为)并且在大多数现代 C 实现上以类似的形式可用。

请注意,使用标准功能,您只需指定数据包有效负载、地址、端口和一些标志,您无法控制以太网帧、IP 标头等的确切内容,这些内容是由操作者为您创建的系统。如果您需要对低级数据包进行这种级别的控制,我相信您可以使用 libpcap/winpcap 来实现此目的,或者某些操作系统可能具有“原始”套接字,可以让您执行此操作。

Here is a very simple code example for two programs that talk over a UDP socket: One code listing creates and sends a packet and one receives it.

http://www.abc.se/~m6695/udp.html

Note that these Network functions aren't part of the C Language itself which has no networking support, but they are standard (POSIX, I think) and available in similar forms on most modern C implementations.

Note that with the standard functions, you only specify the packet payload, address, port, and some flags, you don't get to control the exact contents of the ethernet frame, IP headers, etc, those are created for you by the Operating System. If you need that level of control over the low level packet, I believe you can use libpcap/winpcap for that purpose, or some operating systems may have 'raw' sockets which let you do this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文