fork download
  1. #include <stdio.h>
  2. #include <errno.h>
  3. #include <sys/socket.h>
  4. //#include <resolv.h>
  5. #include <arpa/inet.h>
  6. #include <pthread.h>
  7. #include <stdlib.h>
  8. #include <strings.h>
  9. #include <unistd.h>
  10.  
  11. #define ADRRESS "127.0.0.1"
  12. #define PORT 9999
  13.  
  14.  
  15. /*void receive_tcp(int clientfd)
  16. {
  17.   char buffer1[7];
  18.   //char *buffer2;
  19.   int n, i;
  20.  
  21.   n = read(clientfd, buffer1, sizeof(buffer1));
  22.  
  23.   for(i=0;i<n;i++)
  24.   {
  25.   printf("%c", buffer1[i]);
  26.   }
  27. }*/
  28.  
  29. int main()
  30. {
  31. int sock;
  32. struct sockaddr_in s1;
  33. char buffer1[7];
  34. int n, i;
  35.  
  36. printf("A criar socket...");
  37.  
  38. if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  39. {
  40. printf("Erro ao criar socket.");
  41. exit(1);
  42. }
  43.  
  44. bzero(&s1, sizeof(s1));
  45. s1.sin_family = AF_INET;
  46. s1.sin_port = htons(PORT);
  47. s1.sin_addr.s_addr = INADDR_ANY;
  48.  
  49. printf("A ligar ao socket...");
  50.  
  51. if (bind(sock, (struct sockaddr*)&s1, sizeof(s1)) != 0)
  52. {
  53. printf("Erro ao ligar socket.");
  54. exit(1);
  55. }
  56.  
  57. printf("A configurar socket...");
  58.  
  59. if (listen(sock, 10) != 0)
  60. {
  61. printf("Erro ao configurar socket.");
  62. exit(1);
  63. }
  64. printf("A entrar no ciclo...");
  65.  
  66. while(1)
  67. {
  68. int clientfd;
  69. struct sockaddr_in client_addr;
  70. size_t addrlen= (int) sizeof(client_addr);
  71.  
  72. //pthread_t thread1;
  73.  
  74. printf("À espera de uma nova ligação...");
  75. clientfd = accept(sock, (struct sockaddr*) &client_addr, &addrlen);
  76. n = read(clientfd, buffer1, sizeof(buffer1));
  77.  
  78. for(i=0;i<n;i++)
  79. {
  80. printf("%c", buffer1[i]);
  81. }
  82.  
  83. //pthread_create(&thread1, 0, receive_tcp, clientfd);
  84. //pthread_detach(thread1);
  85.  
  86. }
  87. return 0;
  88. }
Time limit exceeded #stdin #stdout 5s 2008KB
stdin
Standard input is empty
stdout
Standard output is empty