首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > windows >

error C2664: “bind”: 不能将参数 1 从“sockaddr_in”转换为“SOCKET”,该如何解决

2013-01-25 
error C2664: “bind”: 不能将参数 1 从“sockaddr_in”转换为“SOCKET”如题,这个错误不知道怎么修改。是我要自

error C2664: “bind”: 不能将参数 1 从“sockaddr_in”转换为“SOCKET”
如题,这个错误不知道怎么修改。是我要自己重新重载=?还是该怎么解决?在google 上没有找到解决办法。大神们帮忙!
[解决办法]
你参数传错了
[解决办法]
给你一个例子:

    WSADATA wsaData;
    SOCKET ServerSocket;
    SOCKET NewSocket;
    SOCKADDR_IN ServerAddr;
    SOCKADDR_IN ClientAddr;
    int ClientAddrLen;
    int ServerPort = 4000;
    char ReceiveBuffer[1024];
    int Result;
    int ReceiveLen;
    if ((Result = WSAStartup(MAKEWORD(2, 2), &wsaData)) != 0)
    {
        printf("WSAStartup failed with error %d\n", Result);
        return ;
    }
    ServerSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (ServerSocket < 0)
    {
        printf("socket failed with error %d\n", WSAGetLastError());
        return ;
    }
    //memset(&ServerAddr, 0, sizeof(ServerAddr));
    ServerAddr.sin_family = AF_INET;
    ServerAddr.sin_port = htons(ServerPort);
    ServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);
//ServerAddr.sin_addr.s_addr = inet_addr("202.11.11.1" );
    Result = bind(ServerSocket, (SOCKADDR*) &ServerAddr, sizeof(ServerAddr));
    if (Result < 0)
    {
        printf("bind failed with error %d\n", WSAGetLastError());
        return ;
    }


Result = bind(ServerSocket, (SOCKADDR*) &ServerAddr, sizeof(ServerAddr));

热点排行