16,240
社区成员
发帖
与我相关
我的任务
分享
void SocketServer::run(){
if (listen(servSock, MAXPENDING) < 0){
cout<<"listen() failed";
exit(3);
}
for (;;) { // Run forever
struct sockaddr_in clntAddr;
socklen_t clntAddrLen = sizeof(clntAddr);
int clntSock= accept(servSock, (struct sockaddr *) &clntAddr, &clntAddrLen);
if (clntSock < 0){
cout<<"accept() failed";
exit(4);
}
char clntName[INET_ADDRSTRLEN];
if (inet_ntop(AF_INET, &clntAddr.sin_addr.s_addr, clntName,
sizeof(clntName)) != NULL)
printf("Handling client %s/%d\n", clntName, ntohs(clntAddr.sin_port));
else
puts("Unable to get client address");
ThreadArgs *threadArgs=new ThreadArgs();
threadArgs->clntSock=clntSock;
pthread_t threadID;
int returnValue=pthread_create(&threadID,NULL,ThreadMain,threadArgs);
if(returnValue!=0){
cout<<"pthread_create() failed!!";
exit(5);
}
}
}