gpt4 book ai didi

c - 如何将 SOCK_DGRAM 转换为 SOCK_RAW?

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:16 24 4
gpt4 key购买 nike

我正在开发一个开源软件,其中 SOCK_DGRAM 用于发送 RTP 数据包。

像这样:

 int sock = socket(af, SOCK_DGRAM, 0);

但我应该使用与 SOCK_RAW 相同的套接字来发送我准备的 UDP 数据包。

是否可以将 UDP 套接字转换为 RAW 套接字?

如果可以的话怎么办?

提前致谢

最佳答案

我不知道你为什么说需要使用相同的套接字,否则,你可以按照以下步骤通过RAW套接字传输数据包。

  1. 使用 SOCK_RAW 创建套接字
  2. 定义并填充 IP header [struct ipheader]
  3. 定义并填充 UDP header [struct udphdr]
  4. 将套接字设置为不使用系统(内核)提供的 header [setsockopt() for IP_HDRINCL as 1]
  5. 发送缓冲区 [sendto()]

您可以找到一些不错的教程(也许还有一些示例代码)here .

关于c - 如何将 SOCK_DGRAM 转换为 SOCK_RAW?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27164271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com