18,356
社区成员
发帖
与我相关
我的任务
分享
while(1)
{
ThreadData* td=new ThreadData;
int iClentAddrLen=sizeof(td->Addr);
td->Socket=accept(ServerSocket, (SOCKADDR*)&td->Addr,&iClentAddrLen);
cout<<"连接成功,客户端IP地址为:"<<endl;
_beginthread(ClientThread, 0, td);
}
VOID ClientThread(PVOID pvoid)
{
ThreadData*td=(ThreadData*)pvoid;
char buffer[BUFFER_LEN];
while(recv(td->Socket, buffer, BUFFER_LEN, 0))
{
EnterCriticalSection(&m_csCount);
cout<<buffer<<endl;
LeaveCriticalSection(&m_csCount);
}
cout<<"已断开连接"<<endl;
closesocket(td->Socket);
delete td;
_endthread();
}
ThreadData *ptd[20];//20个数据的指针数组,这里假设你已经把要处理的数据放里面了。
VOID ClientThread(PVOID pvoid)
{
for (int i=0;i<20;++i)
{
ThreadData*td=ptd[i];
char buffer[BUFFER_LEN];
while(recv(td->Socket, buffer, BUFFER_LEN, 0))
{
EnterCriticalSection(&m_csCount);
cout<<buffer<<endl;
LeaveCriticalSection(&m_csCount);
}
cout<<"已断开连接"<<endl;
closesocket(td->Socket);
delete td;
}
_endthread();
}