- 论坛徽章:
- 0
|
代码:
memset((void *)&hostaddr, 0, sizeof(hostaddr));
hostaddr.sin_family = AF_INET;
hostaddr.sin_port = htons(6666);
#if 1
ret = inet_aton("192.168.0.101", &(hostaddr.sin_addr));
if ( ret == 0 )
{
close(socketfd);
return -1;
}
#else
hostaddr.sin_addr.s_addr = htonl(INADDR_ANY);
#endif
ret = bind(socketfd, (struct sockaddr *)&hostaddr, sizeof(hostaddr));
机器上有无线网卡和有线2个,有线未使用,并且确认192.168.0.101这个IP是无线网卡获得的。使用此IP运行,bind处报错:Cannot assign requested address。换成条件编译关闭的那个能成功,因此排除port问题。
在网上搜索过,有人遇到类似问题,他们出错是因为在调用inet_aton之后又调用了htonl,而我并没有,为什么我这里会报错? |
|