【报错】error: cannot convert ‘std::1::bind<int&, main()::sockaddr, long unsigned int>‘ to ‘int‘ in init

1 报错
error: cannot convert 'std::1::bind' to 'int' in initialization
     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 &#

你可能感兴趣的:(报错处理,udp,c++)