server.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Server side C/C++ program to demonstrate Socket programming
  2. #include <unistd.h>
  3. #include <stdio.h>
  4. #include <sys/socket.h>
  5. #include <stdlib.h>
  6. #include <netinet/in.h>
  7. #include <string.h>
  8. #define PORT 8080
  9. int main(int argc, char const *argv[])
  10. {
  11. int server_fd, new_socket, valread;
  12. struct sockaddr_in address;
  13. int opt = 1;
  14. int addrlen = sizeof(address);
  15. char buffer[1024] = {0};
  16. char *hello = "Hello from serve";
  17. // Creating socket file descriptor
  18. if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
  19. perror("socket failed");
  20. exit(EXIT_FAILURE);
  21. }
  22. // Forcefully attaching socket to the port 8080
  23. if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT,
  24. &opt, sizeof(opt)))
  25. {
  26. perror("setsockopt");
  27. exit(EXIT_FAILURE);
  28. }
  29. address.sin_family = AF_INET;
  30. address.sin_addr.s_addr = INADDR_ANY;
  31. address.sin_port = htons( PORT );
  32. // Forcefully attaching socket to the port 8080
  33. if (bind(server_fd, (struct sockaddr *)&address,
  34. sizeof(address))<0)
  35. {
  36. perror("bind failed");
  37. exit(EXIT_FAILURE);
  38. }
  39. if (listen(server_fd, 3) < 0)
  40. {
  41. perror("listen");
  42. exit(EXIT_FAILURE);
  43. }
  44. if ((new_socket = accept(server_fd, (struct sockaddr *)&address,
  45. (socklen_t*)&addrlen))<0)
  46. {
  47. perror("accept");
  48. exit(EXIT_FAILURE);
  49. }
  50. valread = read(new_socket, buffer, 1025);
  51. printf("%s\n", buffer);
  52. send(new_socket, "Hello from serve_r Hello", strlen("Hello from serve_r Hello"), 0);
  53. printf("Hello message sent\n");
  54. for(unsigned long long i = 0;i < 1e9;i++){
  55. if(((i * i) % 3) == 2)return 6;
  56. }
  57. return 0;
  58. }