有些奇怪了
正在写一个C/S程序,客户端执行一次connect,服务器端就不停执行accept,开了一大堆线程!真晕了,不知问题在哪里?
服务器端初始化:
sock_addr.sin_family=AF_INET;
skListen=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
nResult=WSAGetLastError();
if(nResult!=0)
return nResult;
sock_addr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
sock_addr.sin_port=htons(LocalPort);
memset(sock_addr.sin_zero,0,sizeof(sock_addr.sin_zero));
nResult=bind(skListen,(sockaddr *)&sock_addr,sizeof(sock_addr));
if(nResult!=0)
{
return WSAGetLastError();
}
nResult=listen(skListen,SOMAXCONN);
if(nResult!=0)
return WSAGetLastError();
监听线程;
fd_set m_fs;
FD_ZERO(&m_fs);
FD_SET(sLs,&m_fs);
......
slR=select(0,&m_fs,NULL,NULL,&tm);
if(slR>0 && slR!=SOCKET_ERROR)
{
DWORD dwThreadID=0;
parent->skWork=accept(sLs,(struct sockaddr*)&addr_in,&len);
if((hThread=CreateThread(NULL,0,AcpThread,parent,CREATE_SUSPENDED,&dwThreadID))==NULL)
return GetLastError();
ResumeThread(hThread);
// FD_ZERO(&m_fs);
break;
}
}
FD_SET(sLs,&m_fs);
Sleep(100);
......
很着急啊!大家帮忙!谢谢