您现在的位置:首页 > >

bind: Cannot assign requested address

发布时间:

今天写了一段socket代码,大致是这样的:



struct sockaddr_in cliaddr;

inet_aton("192.168.2.12", &addr);

cliaddr.sin_family = AF_INET;
cliaddr.sin_addr.s_addr = htonl(addr.s_addr);
cliaddr.sin_port = htons(5000);


if(bind(sockfd, (const struct sockaddr *)&cliaddr, sizeof(cliaddr)) == -1)
{
perror("bind failed
");
}
执行时,总报错:


?Cannot assign requested address


花了比较多的时间,也没找出原因。


后来在网上搜了下,才知道,原来 函数 inet_aton已经把IP地址保存为network order了,所以不需要再用htonl()转了。


其实inet_aton()的man里面说的很清楚的。



inet_aton() converts the Internet host address cp from the IPv4 num?
bers-and-dots notation into binary form (in network byte order) and
stores it in the structure that inp points to.
以后还是要仔细了解每个函数的具体作用啊。





热文推荐
猜你喜欢
友情链接: 医学资料大全 农林牧渔 幼儿教育心得 小学教育 中学 高中 职业教育 成人教育 大学资料 求职职场 职场文档 总结汇报