为了账号安全,请及时绑定邮箱和手机立即绑定

具体帮忙看一下下面的代码,是关于socket编程的bind函数问题 !

具体帮忙看一下下面的代码,是关于socket编程的bind函数问题 !

胡子哥哥 2021-10-13 15:11:48
bzero(&socket_info.address, sizeof(socket_info.address)); socket_info.address.sin_family = AF_INET;socket_info.address.sin_addr.s_addr = inet_addr(IP) ;socket_info.address.sin_port = htons(PORT);socket_info.socket_descriptor = socket(AF_INET, SOCK_DGRAM, 0);if (socket_info.socket_descriptor == -1) {perror ("socket call failed");exit(errno);} bind_rc = bind(socket_info.socket_descriptor, (struct sockaddr *)&socket_info.address, sizeof(socket_info.address));if (bind_rc == -1) {perror ("bind call failed");exit (errno);}#define IP "192.168.2.6" 这里的IP是我本机的IP,如果使用127.0.0.1代码也都正常。但是如果使用比如说是局域网内的IP"192.168.2.22"就出现错误:bind call failed: Cannot assign requested address请问大家我的初始化哪里有错误?是linux下的socket。 htonl(INADDR_ANY); 是任何IP的。对我没任何意义,而且我用的UDP,不是TCP,看你等级那么高也是到处复制粘贴来回答问题的?难道都没看到我问什么吗? 我知道我错在哪里了:bind是绑定本机IP问上另外一个问题:作为接收端如何做,才能实现指定IP连接?
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

进程可以把一个特定的IP地址捆绑到它的套接口上,但是这个IP地址必须是本机的网络接口之一。

从你说得情况来看,可能192.168.2.6并不是你机器的IP地址,你最好先看看自己的IP.

查看完整回答
反对 回复 2021-10-17
  • 2 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信