在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::即可