- 論壇徽章:
- 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));
機(jī)器上有無(wú)線網(wǎng)卡和有線2個(gè),有線未使用,并且確認(rèn)192.168.0.101這個(gè)IP是無(wú)線網(wǎng)卡獲得的。使用此IP運(yùn)行,bind處報(bào)錯(cuò):Cannot assign requested address。換成條件編譯關(guān)閉的那個(gè)能成功,因此排除port問(wèn)題。
在網(wǎng)上搜索過(guò),有人遇到類(lèi)似問(wèn)題,他們出錯(cuò)是因?yàn)樵谡{(diào)用inet_aton之后又調(diào)用了htonl,而我并沒(méi)有,為什么我這里會(huì)報(bào)錯(cuò)? |
|