Scoket客户端连不上服务器.
服务器代码:--部分代码
sockaddr_in local;
local.sin_family=AF_INET;
local.sin_addr.s_addr=inet_addr("127.0.0.1")/*htonl(INADDR_ANY)*/;
local.sin_port=htons((u_short)8888); //设置端口号 进行字节序列转换
// 绑定服务器的ip地址和端口号
if(bind(hServer, (sockaddr*)&local, sizeof(local))!=0)
{
return 0;
}
if(listen(hServer, 10) != 0)
{
return 0;
}
SOCKET client;//得到客户段SCOKET对象
sockaddr_in from;//得到客户端IP地址和端口信息
PCHAR temp = NULL;
int fromlen = sizeof(from);
client = accept(hServer, (struct sockaddr*)&from, &fromlen);//等待请求进来
客户端代码:
sockaddr_in sock;
sock.sin_family = AF_INET;
sock.sin_port = htons((u_short)8888)/*htons(8888)*/;
sock.sin_addr.s_addr = inet_addr("127.0.0.1");
if (connect(sk, (sockaddr*) &sock, sizeof(sock) == SOCKET_ERROR))
{
//错误处理
printf("请求连接失败!\n");
LPVOID lpMsgBuf; //LPVOID无符号指针
FormatMessage( /*将出错信息转换字符串*/
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
WSAGetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL);
printf("%s\r\n",(LPTSTR)lpMsgBuf);
LocalFree(lpMsgBuf);//释放内存
}
客户端这边怎么也连不上服务器端,获取到的出错信息是:系统检查到调用中尝试使用指针参数时的无效指针地址.
难道说是connet里面使用的参数有无效指针,但我看了下都是有值的啊.
大家指点下,谢谢.