KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
when I do 100 non-block socket connection in 1 thread,it is very slow(the number of connection increased one by one),but if I do a blocking socket connection in 100 parallel threads(one connect per thread), it is very fast(get done immediately ) sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (fcntl(sock, F_SETFL,O_NONBLOCK)!=0) { perror("fcntl nonblock"); return -1; } if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,&reuseAddr, sizeof(reuseAddr))!=0) { perror("reuse addr"); return -1; } sAddr.sin_addr.s_addr = inet_addr(SRV_ADDR); sAddr.sin_port = htons(1972); if ((n=connect(sock, (const struct sockaddr *) &sAddr, sizeof(sAddr))) < 0) { if (errno !=EINPROGRESS) { perror("client connect error"); return -1; } } else if (n>=0) { printf("#%d connected\n",sock); } return sock;
Tags (comma-separated)
Save Edits
Cancel