Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. #include <sys/types.h>
  2. #include <sys/wait.h>
  3. #include <sys/socket.h>
  4. #include <netinet/in.h>
  5. #include <arpa/inet.h>
  6. #include <unistd.h>
  7. #include <netdb.h>
  8. #include <signal.h>
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12.  
  13. #define SERVER_PORT 1234
  14. #define QUEUE_SIZE 5
  15.  
  16. int main(int argc, char* argv[])
  17. {
  18. int server_socket_descriptor;
  19. int connection_socket_descriptor;
  20. int bind_result;
  21. int listen_result;
  22. char reuse_addr_val = 1;
  23. char buf[100];
  24. char l1[50];
  25. char l2[50];
  26. char toSend[100];
  27. char * l;
  28.  
  29. struct sockaddr_in server_address;
  30.  
  31. //inicjalizacja gniazda serwera
  32.  
  33. memset(&server_address, 0, sizeof(struct sockaddr));
  34. server_address.sin_family = AF_INET;
  35. server_address.sin_addr.s_addr = htonl(INADDR_ANY);
  36. server_address.sin_port = htons(SERVER_PORT);
  37.  
  38. server_socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);
  39. if (server_socket_descriptor < 0)
  40. {
  41. fprintf(stderr, "%s: Błąd przy próbie utworzenia gniazda..\n", argv[0]);
  42. exit(1);
  43. }
  44. setsockopt(server_socket_descriptor, SOL_SOCKET, SO_REUSEADDR, (char*)&reuse_addr_val, sizeof(reuse_addr_val));
  45.  
  46. bind_result = bind(server_socket_descriptor, (struct sockaddr*)&server_address, sizeof(struct sockaddr));
  47. if (bind_result < 0)
  48. {
  49. fprintf(stderr, "%s: Błąd przy próbie dowiązania adresu IP i numeru portu do gniazda.\n", argv[0]);
  50. exit(1);
  51. }
  52.  
  53. listen_result = listen(server_socket_descriptor, QUEUE_SIZE);
  54. if (listen_result < 0) {
  55. fprintf(stderr, "%s: Błąd przy próbie ustawienia wielkości kolejki.\n", argv[0]);
  56. exit(1);
  57. }
  58.  
  59. while(1)
  60. {
  61. if((connection_socket_descriptor = accept(server_socket_descriptor, NULL, NULL))!=-1){
  62. while(read(connection_socket_descriptor, buf, sizeof(buf)>0)){}
  63. l=l1;
  64. int x=0;
  65. for(int i=0; i<sizeof(buf); i++){
  66. if(buf[i]==';') {l=l2; x=0;}
  67. l[x]=buf[i];
  68. x++;
  69. }
  70.  
  71. int ll1, ll2;
  72. int suma;
  73.  
  74. sscanf(l1, "%d", &ll1);
  75. sscanf(l2, "%d", &ll2);
  76.  
  77. suma=ll1+ll2;
  78.  
  79. sprintf(toSend, "%d", suma);
  80.  
  81. write(connection_socket_descriptor, toSend, sizeof(toSend));
  82. printf("%s\n", toSend);
  83. }
  84. }
  85.  
  86. close(server_socket_descriptor);
  87. return(0);
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement