地址族不支持异常重现
Address family not Supported Exception Reproduce
嗨,我正在尝试重现地址家庭异常
std::auto_ptr<UdpSocket> s_StatusSocket;
//.......
//.......
try
{
s_StatusSocket->send(&f.addr, reqBuf, reqLen);
}
catch (const SystemException& se)
{
string exceptionMessage=se.what();
if(exceptionMessage.find("ddress family"))
{
//Finally THrown
}
}
为此,我正在使用iptables来阻止IP,
iptables -A INPUT -s 10.10.0.1 -j DROP
service iptables save
这样做在发送块上没有抛出异常,请让我知道如何重现 Linux 不支持的地址系列
编译
没有IPv6的内核。或者使用其他不受支持的地址系列。
您不能使用 iptables - 这与支持哪些地址系列完全无关。当您呼叫socket(2)
时,您需要实际传入不支持的地址。另请注意,如果您阅读 send()
的手册页,您会发现它不会返回EAFNOSUPPORT
!您误读了文档 - EAFNOSUPPORT
错误由 socket(2)
、connect(2)
和 socketpair(2)
返回。
UDP 协议不保证数据包的传递。 预期收件人没有确认收到。 就UdpSocket
而言,它已发送数据包。 它不知道IPTables正在扔掉它们。
如果您想知道数据是否已到达预期的收件人,则应使用 TCP。
相关文章:
- 为什么istream不支持右值提取
- 为什么异常不退出程序?
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- Casablanca/cpprestsdk listener.support接受函数,但不支持方法
- 为什么C++不支持对未初始化变量进行智能分析?
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 在 Ubuntu 18.04 上编译 GLSL 着色器时"不支持 GLSL 3.30"?
- 为什么联机C++ IDE 不支持"graphics.h"头文件?
- Clang编译器不支持aarch64-apple-darwin上的-fxray-instrument
- 为什么我的 clang 格式不支持 PPDirectiveIndentStyle 选项?
- 为什么某些 STL 容器(堆栈、队列、优先级队列)不支持迭代器?
- 为什么不支持 Xcode 1.5?
- C++20 从括号中的值列表初始化聚合,不支持内部数组
- 为什么结构化绑定不支持可变数组?
- 您选择的 CPU 不支持 x86-64 指令集
- 升级到G++4.8-exception_ptr.h不支持异常传播
- 抛出异常:类型错误:对象不支持属性或方法"createVertexArray"(emscripten)
- 我需要 C++ 中的不支持的操作异常
- 地址族不支持异常重现
- 使用不支持异常处理的代码(C++/LLVM)进行链接