小编aro*_*son的帖子

无法将套接字绑定到 IPv4 和 IPv6 中的端口

我是套接字编程的新手,当我遇到困难时,我正在编写一些临时代码以更好地了解它。任何有关我做错了什么的指导将不胜感激!

我正在尝试编写一个简单的程序,该程序绑定并侦听用户指定的端口并向任何连接发送“Hello”消息。为了好玩,我想我只需在同一个端口上侦听所有 IPv4 和 IPv6 地址即可。这是一个代码片段:

memset(&hints, 0, sizeof hints);
hints.ai_family   = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags    = AI_PASSIVE;

if ( getaddrinfo(NULL, argv[1], &hints, &res) != 0 ) { 
    printf("getaddrinfo failed!\n");
    return 1;
}

for ( addrinfo* p = res; p != NULL; p = p->ai_next ) { 
    inet_ntop(p->ai_family, get_addr_ptr(p->ai_addr), ipstr, sizeof ipstr);
    printf("Found IP: %s\n",ipstr);

    printf("\tGetting socket...\t");
    sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol);
    if ( sockfd == -1 ) { 
        perror("\t\tError");
        continue;
    }
    printf("OK\n");

    printf("\tBind Socket to Port...\t");
    if ( …
Run Code Online (Sandbox Code Playgroud)

c c++ sockets networking

3
推荐指数
1
解决办法
5486
查看次数

标签 统计

c ×1

c++ ×1

networking ×1

sockets ×1