Advertisement
ostyleo

server

Oct 31st, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.26 KB | None | 0 0
  1. //SCHIMBA NUMERE INTRE ELE
  2. #include <sys/types.h>
  3. #include <sys/socket.h>
  4. #include <stdio.h>
  5. #include <netinet/in.h>
  6. #include <netinet/ip.h>
  7. #include <string.h>
  8. #include <unistd.h>
  9. #include <arpa/inet.h>
  10. #include <stdlib.h>
  11.  
  12. int main(int argc, char* argvs[]) {
  13.   int s,l;
  14.   struct sockaddr_in server, client1, client2;
  15.   s = socket(AF_INET, SOCK_DGRAM, 0);
  16.   //VERIFICARE --------
  17.   int port = atoi(argvs[1]);
  18.   if(port<1024 || port>65535){
  19.         printf("Portul nu convine!\n");
  20.         return 1;
  21.     }
  22.   //VERIFICARE --------
  23.  
  24.   if (s < 0) {
  25.     printf("Eroare la crearea socketului server\n");
  26.     return 1;
  27.   }
  28.  
  29.   memset(&server, 0, sizeof(server));
  30.   server.sin_port = htons(port);
  31.   server.sin_family = AF_INET;
  32.   server.sin_addr.s_addr = INADDR_ANY;
  33.  
  34.   if (bind(s, (struct sockaddr *) &server, sizeof(server)) < 0) {
  35.     printf("Eroare la bind\n");
  36.     return 1;
  37.   }
  38.   l = sizeof(server);
  39.   uint16_t nr1,nr2;
  40.  
  41.   recvfrom(s, &nr1, sizeof(nr1), MSG_WAITALL, (struct sockaddr *) &client1, &l);
  42.   recvfrom(s, &nr2, sizeof(nr2), MSG_WAITALL, (struct sockaddr *) &client2, &l);
  43.  
  44.   sendto(s, &nr2, sizeof(nr2), 0, (struct sockaddr *) &client1, sizeof(client1));
  45.   sendto(s, &nr1, sizeof(nr1), 0, (struct sockaddr *) &client2, sizeof(client2));
  46.  
  47.   close(s);
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement