首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

ipv6套接字绑定异常,求大神.

2012-11-05 
ipv6套接字绑定错误,求大神......C/C++ code#includestdio.h#includewinsock2.h#includews2tcpip.h/

ipv6套接字绑定错误,求大神......

C/C++ code
#include<stdio.h>#include<winsock2.h>#include<ws2tcpip.h>//在编译采用了WINSOCK2.H的应用程序时,需要链接到WS2_32.LIB库  #pragma comment(lib, "WS2_32.LIB")  int main(int argc, char* argv[]){    WORD wVersionRequested;    WSADATA wsaData;    int err;    wVersionRequested = MAKEWORD(1, 1);    err = WSAStartup(wVersionRequested,  &wsaData);    if (err != 0) {        printf("WSAStartup failed.\n");        system("pause");        return -1;    }    if (LOBYTE(wsaData.wVersion) != 1||        HIBYTE(wsaData.wVersion) != 1) {            WSACleanup();            printf("LOBYTE or HIBYTE failed.\n");            system("pause");            return -2;    }    //创建套接字//    addrinfo hints;    addrinfo *res;    memset(&hints, 0, sizeof(hints));    hints.ai_family=AF_INET6;    //hints.ai_family        = PF_INET6;    hints.ai_socktype    = SOCK_DGRAM;    hints.ai_protocol    = IPPROTO_UDP;    hints.ai_flags        = AI_NUMERICHOST;    getaddrinfo("fe80::706d:5cb0:fcac:7141", "7999", &hints, &res);    //getaddrinfo(NULL, "8700", &hints, &res);    SOCKET s;    s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);    if(s == INVALID_SOCKET)    {        WSACleanup();        printf("Create socket failed.\n");        system("pause");        return -3;    }    //绑定套接口    err = bind(s, res->ai_addr, res->ai_addrlen);    if(err == SOCKET_ERROR)    {        WSACleanup();        printf("Bind socket failed.\n");        system("pause");        return -4;    }    //发送消息    char buf[]="Hello, my name is zhcosin.";    err = sendto(s, buf, strlen(buf), 0, res->ai_addr, res->ai_addrlen);    if(err == SOCKET_ERROR)    {        WSACleanup();        printf("Send failed.\n");        system("pause");        return -5;    }    closesocket(s);    system("pause");}

编译没问题,运行的时候进入到了套接字绑定错误处理的那部分代码了,求帮助啊
运行输出如下:
Bind socket failed.
Press any key to continue......

[解决办法]
服务端要用 AI_PASSIVE
hints.ai_flags = AI_PASSIVE

热点排行