Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <netinet/in.h>
  8. // define function that deals with errors
  9. void error(const char *msg)
  10. {
  11. perror(msg); // print error msg
  12. exit(1); // exit the main() function
  13. }
  14.  
  15. int main(int argc, char *argv[])
  16. {
  17. int sockfd, newsockfd, portno; // defines ints
  18. socklen_t clilen; //size of address
  19. char buffer[256]; // buffer
  20. struct sockaddr_in serv_addr, cli_addr; // defines structures
  21. int n;
  22.  
  23. sockfd = socket(AF_INET, SOCK_STREAM, 0); // makes a socket
  24. if (sockfd < 0)
  25. error("ERROR opening socket"); // if socket creation failed
  26.  
  27. bzero((char *) &serv_addr, sizeof(serv_addr));
  28.  
  29. portno = atoi(argv[1]); // get port number
  30.  
  31. serv_addr.sin_family = AF_INET; // specify address family (IPv4)
  32. serv_addr.sin_addr.s_addr = INADDR_ANY; // bind IP addresses
  33. serv_addr.sin_port = htons(portno); // set port number
  34.  
  35. if (bind(sockfd, (struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
  36. error("ERROR on binding"); // error while binding socket
  37. listen(sockfd,5); // listen on created socket
  38. clilen = sizeof(cli_addr);
  39. newsockfd = accept(sockfd,(struct sockaddr *) &cli_addr,&clilen); // creates new socket for first incoming connection
  40. if (newsockfd < 0)
  41. error("ERROR on accept"); // error while creating socket
  42. while (1)
  43. {
  44. printf("Waiting for data\n");
  45. bzero(buffer,256);
  46. n = read(newsockfd,buffer,255); // read from connection socket
  47. if (n < 0) error("ERROR reading from socket"); // if error
  48. printf("Here is the message: %s\n",buffer); // show the message
  49. }
  50. close(newsockfd); // close connection socket
  51. close(sockfd); // close listening socket
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement