Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void *listener(int *sock)
- {
- char message[138];
- int newsock, sockreturn;
- socklen_t clilen;
- writelog("Starting server...\n");
- struct sockaddr_in cliaddr;
- struct addrinfo a, *b;
- memset(&a, 0, sizeof(a));
- a.ai_family = AF_UNSPEC;
- a.ai_socktype = SOCK_STREAM;
- a.ai_flags = AI_PASSIVE;
- memset(&cliaddr, 0, sizeof(cliaddr));
- cliaddr.sin_family = AF_INET;
- cliaddr.sin_addr.s_addr = htonl(INADDR_ANY);
- cliaddr.sin_port = htons(22580);
- getaddrinfo(NULL, "22580", &a, &b);
- *sock = socket(b->ai_family, b->ai_socktype, b->ai_protocol);
- if(*sock == -1) {
- writelog("Server: couldn't create a socket.\n");
- return NULL;
- }
- if(bind(*sock, b->ai_addr, b->ai_addrlen) == -1) {
- writelog("Server: couldn't bind to port 25580.\n");
- return NULL;
- }
- if(listen(*sock, 5) == -1) {
- writelog("Server: couldn't listen on port 25580.\n");
- return NULL;
- }
- writelog("Server: listening on port 22580.\n");
- while(1) {
- clilen = sizeof(cliaddr);
- newsock = accept(*sock, (struct sockaddr *)&cliaddr, &clilen);
- if(newsock < 0) writelog("Server: error on accept.\n");
- bzero(message, 130);
- sockreturn = read(newsock, message, 130);
- if(sockreturn < 0) writelog("Server: error reading from socket.\n");
- processServerMessage(message);
- close(newsock);
- }
- return NULL;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement