UDP 套接字错误 10049
UDP Socket error 10049
我有一个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)
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- Winsock 错误 10049 尝试绑定
- UDP 套接字错误 10049
- WSA 10049 错误,没有明显的原因
- Winsock Connect失败,错误为10049