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 ; }