server.c


SUBMITTED BY: okpalan86

DATE: Feb. 10, 2024, 2:08 a.m.

FORMAT: C

SIZE: 1.3 kB

HITS: 477

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <arpa/inet.h>
  6. #define PORT 8080
  7. int main() {
  8. int server_fd, new_socket;
  9. struct sockaddr_in address;
  10. int addrlen = sizeof(address);
  11. char *response = "HTTP/1.1 200 OK\nContent-Type: text/plain\nContent-Length: 12\n\nHello, World";
  12. // Creating socket file descriptor
  13. if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
  14. perror("socket failed");
  15. exit(EXIT_FAILURE);
  16. }
  17. address.sin_family = AF_INET;
  18. address.sin_addr.s_addr = INADDR_ANY;
  19. address.sin_port = htons(PORT);
  20. // Forcefully attaching socket to the port 8080
  21. if (bind(server_fd, (struct sockaddr *)&address, sizeof(address)) < 0) {
  22. perror("bind failed");
  23. exit(EXIT_FAILURE);
  24. }
  25. if (listen(server_fd, 3) < 0) {
  26. perror("listen");
  27. exit(EXIT_FAILURE);
  28. }
  29. printf("Server listening on port %d\n", PORT);
  30. if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t*)&addrlen)) < 0) {
  31. perror("accept");
  32. exit(EXIT_FAILURE);
  33. }
  34. write(new_socket, response, strlen(response));
  35. printf("Response sent\n");
  36. close(new_socket);
  37. close(server_fd);
  38. return 0;
  39. }

comments powered by Disqus