getaddrinfo 抛出异常
getaddrinfo throws exception
本文关键字:抛出异常 getaddrinfo 更新时间:2023-10-16
上面的套接字调用抛出异常。这是代码片段:
if (!getaddrinfo((PCSTR)serverHost.c_str(), (PCSTR)serverPort, &hints, &result))
return false;
看起来问题出在result struct
.
这就是我的定义 -struct addrinfo *result = NULL
;
我已经完全按照 msdn 页面中提到的方式定义并实现了它,但仍然看到问题。
以下是例外情况:
在 AnandServer .exe 中0x76406783 (KernelBase.dll) 引发异常: 0xC0000005:访问冲突读取位置0x00000050
我的理解是getaddrinfo
函数用值填充结果结构。
有关问题可能在哪里的任何指示。
你对result
的使用似乎是正确的。
您是否可能定义了int serverPort = 80
(或其他一些整数类型),而不是字符串? 这与尝试从地址0x00000050
(十进制为 80)读取时收到访问冲突是一致的。
getaddrinfo()
的第二个参数需要一个以 null 结尾的字符串,其中包含服务名称,该服务名称可以是文本格式的端口号。 您需要传入一个实际的字符串,不要简单地将整数类型转换为char*
指针。
相关文章:
- 从构造函数抛出异常时如何克服内存泄漏
- 函数如何通知用户它基于函数原型抛出异常?
- 在缺少函数重载时抛出异常,并带有 std::variant 而不是编译时错误
- VisualStudios 会抛出异常,而代码块不会 [C++]
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- ZMQ::send() 抛出异常并终止 QNX 进程.为什么以及如何从中恢复?
- new(std::nothrow) int[n] 抛出异常
- 为什么g_object_set抛出异常(vcruntime140.dll)?
- 你能防止 std::regex 在无效表达式上抛出异常吗?
- C++子线程抛出异常
- 我们应该在抛出异常之前取消分配内存吗
- 有没有一种方法可以让OpenCLC++绑定为所有错误抛出异常
- 为什么访问模板化变体作为返回值抛出异常
- 如何实现,错误分配中止而不是抛出异常
- std::p riority_queue::p op什么时候会抛出异常
- 在0x5914F3BE抛出异常(基于.dll)
- std::vector 默认构造函数可以抛出异常吗?
- 挂钩创建文件抛出异常:读取访问冲突
- getaddrinfo 抛出异常
- 如果文件为c ,如何抛出异常