我正在寻找一种方法来检测Erlang中传出UDP数据包的“端口不可达”错误,因此我可以急切地向应用程序报告传输层错误。即,我想捕获ICMP类型3数据包,以向更高层报告数据包尚未到达目的地。
目前我了解两种方法:
gen_udp:connect/3
。但是,似乎这需要为每个新的目标对地址打开一个新套接字:port。优点是这不需要任何特权。我还缺少其他变种吗?
答案 0 :(得分:1)
procket可能是您正在寻找的,但我自己从未使用过它。它是对低级套接字API的绑定,因此它允许您使用底层API支持的所有协议。我只是引用它的自述文件,所以请带上一点盐。