70,037
社区成员
发帖
与我相关
我的任务
分享
// client信息
int client;
struct sockaddr_in client_addr;
int sock_size = sizeof(struct sockaddr_in);
// select 模型
fd_set fdRead;
struct timeval fdTV = {1, 0};
// 准备线程
pthread_t Thread_pid;
pthread_attr_t Thread_attr;
pthread_attr_init(&Thread_attr);
pthread_attr_setscope(&Thread_attr, PTHREAD_SCOPE_PROCESS);
pthread_attr_setdetachstate(&Thread_attr, PTHREAD_CREATE_DETACHED);
// 循环接收连接请求
while (1)
{
FD_ZERO(&fdRead);
FD_SET(sock, &fdRead);
switch ( select(sock, &fdRead, NULL, NULL, &fdTV) )
{
default:
if ( FD_ISSET(sock, &fdRead) )
{
client = accept(sock, (struct sockaddr*)&client_addr, &sock_size);
//
printf("Begin 2 create thread on socket: %d\n", client);
pthread_create(&Thread_pid, &Thread_attr, APISelect, client);
//
printf("Thread Created.\n");
}
}
}