Advertisement
Geralt1001

Untitled

Jan 23rd, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.84 KB | None | 0 0
  1. while(1)  // głowna pętla accept()
  2.     {
  3.         if(i>N)
  4.         {
  5.             printf("Brak wolnego pionka!\n");
  6.            
  7.         }
  8.        
  9.         sin_size = sizeof( struct sockaddr_in );
  10.        
  11.         if((fdTab[i] = accept(sockfd,( struct sockaddr * ) &their_addr,(socklen_t *) &sin_size))==-1)
  12.         {
  13.             perror( "Error - accept" );
  14.             continue;
  15.         }
  16.         printf( "server nawiazal polaczenie z:  %s\n", inet_ntoa( their_addr.sin_addr ) ); // zamienia 32-bitowy adres IP na jego odpowiednik w notacji xxx.xxx.xxx.xxx
  17.         //send(sockfd, "s w lochach \n", 30,0);
  18.         fds[i].fd = fdTab[i];
  19.         fds[i].events = POLLIN;
  20.        
  21.         int j;
  22.        
  23.        
  24.        
  25.         ret = poll(fds, N, 10*1000);
  26.         if(ret == -1)
  27.         {
  28.             perror("Error - poll\n");
  29.             return 1;
  30.         }
  31.  
  32.         if(!ret)
  33.         {
  34.             printf("Minal ustalony timeout, czyli 10 sekund \n");
  35.         }
  36.         int xn = x;
  37.         int yn = y;
  38.  
  39.        
  40.         if(fds[i].revents & POLLIN)
  41.         {
  42.             x = piony[i][0];
  43.             y = piony[i][1];
  44.             //move(fdTab[i],p[i]);
  45.             char c=p[i];
  46.            
  47.            
  48.                 char buf[1];
  49.                 if((recv(fdTab[i],buf,sizeof(buf),0))==-1)
  50.                 {
  51.                     printf("Error - recv\n");
  52.                     //exit(1);
  53.                     continue;
  54.                 }
  55.  
  56.                 //printf( "X : %s", buf );
  57.                 char znak = buf[0];
  58.                 if(znak=='w' || znak=='s' || znak=='a' || znak=='d')
  59.                 {
  60.                     printf("%c\n",znak);
  61.  
  62.                     switch(znak)
  63.                     {
  64.                         case 'w':
  65.                             yn--;
  66.  
  67.                             switch(labirynt[xn][yn])
  68.                             {
  69.                                 case '1':
  70.                                     if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
  71.                                         printf("Error - send\n");
  72.  
  73.                                     printf("ŚCIANA !\n");
  74.                                     nowy_labirynt[xn][yn] = '1';
  75.                                     yn++;
  76.                                     break;
  77.                                 case '0':
  78.                                     if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
  79.                                         printf("Error - send");
  80.                                     nowy_labirynt[xn][yn+1] = '0';
  81.                                     nowy_labirynt[xn][yn] = c;
  82.                                     break;
  83.                             }
  84.                             printf("************  %d %d ******************************************\n",xn,yn);
  85.                             show_dungeon();
  86.                             break;
  87.  
  88.                         case 's':
  89.                             yn++;
  90.  
  91.                             switch(labirynt[xn][yn])
  92.                             {
  93.                                 case '1':
  94.                                     if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
  95.                                         printf("Error - send\n");
  96.  
  97.                                     printf("ŚCIANA !\n");
  98.                                     nowy_labirynt[xn][yn] = '1';
  99.                                     yn--;
  100.                                     break;
  101.                                 case '0':
  102.                                     if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
  103.                                         printf("Error - send\n");
  104.                                     nowy_labirynt[xn][yn-1] = '0';
  105.                                     nowy_labirynt[xn][yn] = c;
  106.                                     break;
  107.                             }
  108.                             printf("************  %d %d ******************************************\n",xn,yn);
  109.                             show_dungeon();
  110.                             break;
  111.  
  112.                         case 'a':
  113.                             xn--;
  114.  
  115.                             switch(labirynt[xn][yn])
  116.                             {
  117.                                 case '1':
  118.                                     if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
  119.                                         printf("Error - send\n");
  120.         -
  121.                                     printf("ŚCIANA !\n");
  122.                                     nowy_labirynt[xn][yn] = '1';
  123.                                     xn++;
  124.                                     break;
  125.                                 case '0':
  126.                                     if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
  127.                                         printf("Error - send\n");
  128.                                     nowy_labirynt[xn+1][yn] = '0';
  129.                                     nowy_labirynt[xn][yn] = c;
  130.                                     break;
  131.                             }
  132.                             printf("************  %d %d ******************************************\n",xn,yn);
  133.                             show_dungeon();
  134.                             break;
  135.  
  136.                         case 'd':
  137.                             xn++;
  138.  
  139.                             switch(labirynt[xn][yn])
  140.                             {
  141.                                 case '1':
  142.                                     if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
  143.                                         printf("Error - send\n");
  144.  
  145.                                     printf("ŚCIANA !\n");
  146.                                     nowy_labirynt[xn][yn] = '1';
  147.                                     xn--;
  148.                                     break;
  149.                                 case '0':
  150.                                     if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
  151.                                         printf("Error - send\n");
  152.                                     nowy_labirynt[xn-1][yn] = '0';
  153.                                     nowy_labirynt[xn][yn] = c;
  154.                                     break;
  155.                             }
  156.                             printf("************  %d %d ******************************************\n",xn,yn);
  157.                             show_dungeon();
  158.                             break;
  159.                         //default:
  160.                             //printf("\nUzywaj WSAD do poruszania\n");
  161.                             //break;
  162.  
  163.                     }
  164.  
  165.                 }
  166.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement