我有一段代码将 ping 命令作为更大代码的一部分来实现。
这是场景:
- 使用“-c”或“-t”选项运行 ping。
- 随后通过 Ctrl+C 终止
- 大约一个小时后,我观察到 ping 失败。
这是“套接字”调用: sock = socket(IP_AF_INET, IP_SOCK_RAW, IP_IPPROTO_ICMP);
在从套接字调用 recv 之前,将超时值设置为 1 秒。当 ping 失败时,我观察到 errno 设置为 EAGAIN。
我尝试了一些测试,我认为这是由于按下 Ctrl+C 时套接字未关闭造成的。
我的问题是:如果我不像上面提到的场景那样关闭套接字,我会面临什么问题?