| Код | int main(void) { sck = socket(PF_INET, SOCK_STREAM, 0); if(sck == -1) { perror("Cannot create socket\n"); exit(1); }
int yes = 1; if (setsockopt(sck, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int)) == -1) { perror("setsockopt() error"); exit(1); }
struct sockaddr_in sa; sa.sin_family = AF_INET; sa.sin_port = htons(PORT); sa.sin_addr.s_addr = htonl(INADDR_ANY); if (bind(sck, (struct sockaddr*) &sa, sizeof (struct sockaddr)) == -1 ) { perror("Coudn't bind socket"); close(sck); exit(1); } listen(sck, 3);
signal(SIGCHLD, SIG_IGN);
int sck2; int pid; while(1) {
if((sck2 = accept(sck, NULL, NULL)) == -1) { log2P("Accept error"); close(sck); break; } log2P("Accepted new connection %d\n", sck2); struct timeval tv; tv.tv_sec = 300; tv.tv_usec = 0; setsockopt(sck2, SOL_SOCKET, SO_RCVTIMEO, (struct timeval*) &tv, sizeof(struct timeval));
pthread_t thread; //шфхэЄшЇшърЄюЁ яюЄюър int ret = pthread_create(&thread, NULL, connectionLoop, &sck2); if(ret != 0) { log2P("Error %d\n", ret); } pthread_detach(thread); log2P("Detached\n"); }
printf("Application finished\n"); }
Вот этот код...
|
|