1 报错
error: cannot convert 'std::1::bind
int ret = bind(fd, (sockaddr)&addr, sizeof(addr));
2 分析
代码中使用了using namespace std来强制运用标准库里面的名字空间。在标准名字空间里也有一个函数叫bind(),所以就被匹配到这个不是自己想用的函数了,因此报错。
3 解决方法
将bind函数声明到全局域即可。
int ret = ::bind(fd, (sockaddr*)&addr, sizeof(addr));
1 报错
error: 'AF_INET' was not declared in this scope
int fd = socket(AF_INET, SOCK_DGRAM, 0);
error: 'SOCK_DGRAM' was not declared in this scope
int fd