gpt4 book ai didi

c++ - UDP 套接字错误 10049

转载 作者:行者123 更新时间:2023-11-30 01:50:14 25 4
gpt4 key购买 nike

我有一个 UDP 服务器套接字,它可以从客户端接收数据报,但无法向其中任何一个发送回复。

这是我用来发送缓冲区的代码:

    SOCKADDR_IN addr;
memset((char*)&addr, 0, sizeof(addr));

const char* ip = "127.0.0.1";
u_short port = 8888 // IP of the client to which the buffer is going to

if (inet_pton(AF_INET, ip, &addr) == 1)
{
addr.sin_family = AF_INET;
addr.sin_port = htons(port);

sendto(s, buffer, UDP_PACKET_SIZE, NULL, (SOCKADDR *)&addr, addrlen);
}

sendto() 返回 -1,GetLastError() 返回 10049,表示地址不可用。我在 localhost 上发送和接收缓冲区。

最佳答案

您将指向 SOCKADDR_IN 结构的指针作为第三个参数传递给 inet_pton ,但是如果您点击该函数的 MSDN 引用链接,您会看到它需要一个 IN_ADDR。结构。

SOCKADDR_IN结构有这样一个成员,但它不是结构中的第一个成员,这就是你得到错误的原因;您将地址写入结构中错误的位置,您尝试发送到的地址不是您认为的那样。

正确的调用应该是例如

inet_pton(AF_INET, ip, &addr.sin_addr)

关于c++ - UDP 套接字错误 10049,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27691999/

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