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.
添加回答
舉報
0/150
提交
取消