服务器绑定导致错误“无法分配请求的地址”?

Bionix1441

我想在本地主机上创建服务器,使用本地主机的IPv6映射的IPv4地址,但得到errno99。我不确定在这里做错了什么:

#define IPv6_MAPPED_IPv4_LOCAL_ADDRESS "::FFFF:127.0.0.1" //localhost
#define PORT 12345

 static int server()
 {
   int fd, v6only;
   struct sockaddr_in6 addr6;

   v6only = 0;
   /* IPv6 TCP socket */
   fd = socket(AF_INET6, SOCK_STREAM, 0);
   if (fd == -1) {
       fprintf(stderr, "Creating tcp socket failed \n");
       return -1;
    }

   memset(&addr6, 0, sizeof(struct sockaddr_in6));
   addr6.sin6_family = AF_INET6;
   memcpy(addr6.sin6_addr.s6_addr, IPv6_MAPPED_IPv4_LOCAL_ADDRESS, sizeof(struct in6_addr));
   addr6.sin6_port = htons(PORT);
   addr6.sin6_scope_id = 0;

   /* use setsockopt() to enable dual stack on the server */
   if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &v6only, sizeof(v6only)) < 0) {
        fprintf(stderr, "Setting IPV6_V6ONLY to 0 failed error %s \n", strerror(errno)); 
        close(fd);
        return -1;
    }

   /* bind server socket to the address */
   if (bind(fd, (struct sockaddr *)&addr6, sizeof(struct sockaddr_in6)) < 0) {  
       fprintf(stderr, "Binding socket failed error %s\n", strerror(errno));
       close(fd);
       return -1;
   }
 }

服务器因错误而失败 Binding socket failed error Cannot assign requested address

一些程序员哥们

addr6.sin6_addr.s6_addr不是以字符串形式而是以二进制格式表示的地址您需要使用将字符串转换为此二进制格式inet_pton

inet_pton(AF_INET6, IPv6_MAPPED_IPv4_LOCAL_ADDRESS, &addr6.sin6_addr.s6_addr);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

绑定错误(99):无法分配请求的地址

Apache Camel Route:尝试从服务器获取数据时“无法分配请求的地址”

Docker和身份服务器4,api,角度:无法分配请求的地址

Mesos绑定错误:无法分配请求的地址[99]

traceroute具有错误绑定:无法分配请求的地址

JSON对象齐射发布请求-无法命中服务器-将本地URL绑定到地址192.168.0.3

SignalR导致在服务器上看到错误的请求400

Wamp服务器无法绑定到端口80错误

高吞吐量发送到EventHubs导致MessagingException / TimeoutException /服务器无法处理请求错误

内部服务器错误 服务器遇到内部错误,无法完成您的请求

错误 99 - 无法分配请求的地址

Azure-请求无法完成。(内部服务器错误)

VAST:无法从服务器请求广告。原因:错误#2048

Puma错误:无法分配请求的地址-为“ 10.0.2.2”端口3000(Errno :: EADDRNOTAVAIL)绑定(2)

PUT请求导致500(服务器错误);调用错误处理程序

请求在服务器上成功,但在浏览器中导致CORS错误

监听TCP 127.0.4.1:2040:绑定:无法分配请求的地址

在Django URL分配器中使用Handler404导致服务器错误

WPF SignalR服务器返回HTTP 400错误请求(无效的主机地址)

GET和POST请求不适用于ip地址(内部服务器错误)

错误请求 - 浏览器(或代理)发送了此服务器无法理解的请求

.htaccess导致内部服务器错误

PHP导致服务器错误

SAPUI5 POST 请求总是导致 500 服务器错误 (OData)

多数情况下,POST请求导致“内部服务器错误”,但不是全部(!?)

HTTP 1.1 GET请求太快,服务器无法响应,导致TCP重传

Java RMI无法绑定服务器

无法加载资源:服务器在绑定功能中以500(内部服务器错误)状态响应

设置绑定地址时,MySQL服务器重启错误