求助高手!!!我这样server写为什么连不上呢?????急 头文件什么的我都包含了
void Cserver::OnOK()
{
// TODO: Add extra validation here
WSADATA wsaData;
DWORD dwThreadID;
HANDLE lThread;
int res=WSAStartup(MAKEWORD(2,2),&wsaData);
if(res!=0)
{
MessageBox("WinSock初始化失败","提示",MB_OK);
WSACleanup();//初始化失败,解除与Socket库的绑定释放占用资源
}
SOCKET sListen;
sListen = socket(AF_INET,SOCK_STREAM,0);//还是很迷惑第三个参数的0,sListen返回新创建的套接字
if(sListen==INVALID_SOCKET)
{
MessageBox("无法创建服务器socket","提示",MB_OK);
WSACleanup();
}
struct sockaddr_in local;//本机ip
local.sin_addr.s_addr=htonl(INADDR_ANY);//sListen监视所有给本机ip的5144端口发的数据
local.sin_family = AF_INET;
local.sin_port = htons(5144);
int resa= bind(sListen,(struct sockaddr*)&local,sizeof(local));//给sListen绑定本地IP与设置的端口
if (resa==SOCKET_ERROR)
{
MessageBox("无法绑定服务器。","提示",MB_OK);
closesocket(sListen);
}
//WSAGetLastError();
SOCKET sClient;//判断客户端是否启动的,如果客户端没启动就继续循环
struct sockaddr_in client;
int iAddrSize;
while(1)
{
iAddrSize = sizeof(client);
sClient = accept(sListen,(struct sockaddr*)&client,&iAddrSize);
if (sClient==INVALID_SOCKET)
{
break;
}
lThread = CreateThread(NULL,0,MyThread,(LPVOID)sClient,0,&dwThreadID);
if (lThread==NULL)
{
break;
}
CloseHandle(lThread);
}
closesocket(sListen);
WSACleanup();
//CDialog::OnOK();
}