解决 Udp sendto失败 errno 9 (EBADF Bad file descriptor)问题

Udp sendto失败 errno 9 (EBADF Bad file descriptor)

最近在调试udp socket时遇到用sendto发送数据时报错出现 Bad file descriptor。通过查看资料发现有两种情况可以导致上述问题

1、在进行sendto时 udp的socket已经关闭,大家可以自己写示例程序,建立一个udp socket 然后关闭这个socket 再用sendto进行发送,查看结果。这个问题同样适用tcp
2、多线程同时向同一个socket进行sendto数据,这个情况也可以自己写程序验证。(这种说法为网上查阅资料时看到的一种说法,但是自己写测试程序并没有试验出来,如果真实程序遇到这种情况在进行补充,测试程序也很简单就是 不停的穿件线程,每个线程都想同一个socket中写数据。)
发布了67 篇原创文章 · 获赞 15 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/wanxuexiang/article/details/89648022