gpt4 book ai didi

c++ - 发送UDP包时"Invalid argument",但是哪个呢?

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

我的 C++ 应用程序将二进制数据作为 UDP 数据包发送。 sendto() 调用返回 EINVAL(无效参数),但我没有发现我传递的参数有任何问题。

我对该应用程序进行了跟踪,这里是相关的系统调用:

socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 33
setsockopt(33, SOL_IP, IP_RECVERR, [1], 4) = 0
fcntl(33, F_SETFD, FD_CLOEXEC) = 0
bind(33, {sa_family=AF_INET, sin_port=htons(1510), sin_addr=inet_addr("127.0.0.1")}, 16) = 0

sendto(33, "\2055\5\0\0\0\1\0\0\0\1\20 \0t\0c\300Ny\274B\10*\206H\206\367\r\2\5\0\200\200\331'\344\272\322\362sD\277\312\300\23\240\224\212\16\20\1\0\0\22", 55, 0, {sa_family=AF_INET, sin_port=htons(1510), sin_addr=inet_addr("219.132.100.190")}, 16) = -1 EINVAL (Invalid argument)

有人看到哪个参数无效吗?

应用程序最近被移植到支持IPv6,但我不知道这是否与它有关。

最佳答案

您将套接字绑定(bind)到本地地址 127.1,但您正在发送到非本地主机地址。我需要检查一下,但也许 EINVAL 的意思是“你不能发送 127.1 数据包脱离主机。”

关于c++ - 发送UDP包时"Invalid argument",但是哪个呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505315/

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