18,356
社区成员
发帖
与我相关
我的任务
分享
//套接字信息结构
struct DATA
{
SOCKET sock;
SOCKADDR_IN addr;
};
//循环监听
while(1)
{
//这的new等下在线程里用delete释放
DATA *data = new DATA;
data->sock = socket(AF_INET,SOCK_STREAM,0);
//阻塞等待连接
data->sock = accept(ser,(sockaddr *)&data->addr,&len);
cout<<inet_ntoa(data->addr.sin_addr)<<" connected."<<endl;
//为新客户创建新线程
CreateThread(0,0,(LPTHREAD_START_ROUTINE)SubThread,(LPVOID)data,0,0);
}
//线程里面
DWORD SubThread(LPVOID param)
{
DATA *p = (DATA *)param;
...................//处理业务
closesocket(p->sock);//关闭套接字,释放内存
//删除套接字信息结构,释放内存
delete p;
return 0;
}