在macbook上的xcode编写socket程序,发现recv函数收不到数据包,但通过抓包软件可以抓到包。
寻找bug,最后定位到bind()函数,发现如果写成 int res=bind() xcode会报错
Error:No viable conversion from '__bind<int &, sockaddr *, unsigned long>' to 'int'
经过查找,发现是 using namespace std; 这条语句造成的错误,
在std中也存在bind()函数,会优先匹配,而使socket里的bind函数失效,所以才会抓不到包,所以需要删除掉using namespace std; 之后需要用到的时候使用std::即可

在MacBook上的Xcode编写socket程序时遇到bind函数无法正常工作的问题,原因是std命名空间内的bind函数与socket库中的bind函数发生冲突。本文详细介绍了如何定位此问题并提供了解决方案,即移除using namespace std;语句,避免命名空间冲突。
1274

被折叠的 条评论
为什么被折叠?



