调用 bind 函数时发生"在其上下文中 该请求的地址无效。"

问题如题

SOCKET sool = (AF_INET, SOCK_STREAM, IPPROTO_TCP);
        struct sockaddr_in add;
        add.sin_family = AF_INET;
        add.sin_port = htons(12349);
        add.sin_addr.S_un.S_addr= inet_pton(AF_INET, "127.0.0.1", (void*)& sool);
        printf("%d\n", __bind(socketserver, (const struct sockaddr*) & add, sizeof__(add)));
        if (bind(socketserver, (const struct sockaddr*) & add, sizeof(add)) != 0) {
            printf("绑定地址失败!\n错误代码:%d\n",WSAGetLastError());

            closesocket(socketserver);
            WSACLeanup();
            return 0;
        }

显示结果 bind 的返回值是-1. 错误代码为10049 图片说明

  • 1. 是SOCKET sool 的问题吗? 还是(void*)& sool这里的问题?
  • 2.把inet_pton()改成 inet_addr("127.0.0.1")或者是 htonl(INADDR_ANY)则可以绑定.

资源未找到,编辑资源环境变量

add.sin_addr.S_un.S_addr= inet_pton(AF_INET, "127.0.0.1", (void*)& sool);
-->
inet_pton(AF_INET, "127.0.0.1", (void*)& add.sin_addr);