Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- while(1) // głowna pętla accept()
- {
- if(i>N)
- {
- printf("Brak wolnego pionka!\n");
- }
- sin_size = sizeof( struct sockaddr_in );
- if((fdTab[i] = accept(sockfd,( struct sockaddr * ) &their_addr,(socklen_t *) &sin_size))==-1)
- {
- perror( "Error - accept" );
- continue;
- }
- 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
- //send(sockfd, "s w lochach \n", 30,0);
- fds[i].fd = fdTab[i];
- fds[i].events = POLLIN;
- int j;
- ret = poll(fds, N, 10*1000);
- if(ret == -1)
- {
- perror("Error - poll\n");
- return 1;
- }
- if(!ret)
- {
- printf("Minal ustalony timeout, czyli 10 sekund \n");
- }
- int xn = x;
- int yn = y;
- if(fds[i].revents & POLLIN)
- {
- x = piony[i][0];
- y = piony[i][1];
- //move(fdTab[i],p[i]);
- char c=p[i];
- char buf[1];
- if((recv(fdTab[i],buf,sizeof(buf),0))==-1)
- {
- printf("Error - recv\n");
- //exit(1);
- continue;
- }
- //printf( "X : %s", buf );
- char znak = buf[0];
- if(znak=='w' || znak=='s' || znak=='a' || znak=='d')
- {
- printf("%c\n",znak);
- switch(znak)
- {
- case 'w':
- yn--;
- switch(labirynt[xn][yn])
- {
- case '1':
- if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
- printf("Error - send\n");
- printf("ŚCIANA !\n");
- nowy_labirynt[xn][yn] = '1';
- yn++;
- break;
- case '0':
- if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
- printf("Error - send");
- nowy_labirynt[xn][yn+1] = '0';
- nowy_labirynt[xn][yn] = c;
- break;
- }
- printf("************ %d %d ******************************************\n",xn,yn);
- show_dungeon();
- break;
- case 's':
- yn++;
- switch(labirynt[xn][yn])
- {
- case '1':
- if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
- printf("Error - send\n");
- printf("ŚCIANA !\n");
- nowy_labirynt[xn][yn] = '1';
- yn--;
- break;
- case '0':
- if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
- printf("Error - send\n");
- nowy_labirynt[xn][yn-1] = '0';
- nowy_labirynt[xn][yn] = c;
- break;
- }
- printf("************ %d %d ******************************************\n",xn,yn);
- show_dungeon();
- break;
- case 'a':
- xn--;
- switch(labirynt[xn][yn])
- {
- case '1':
- if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
- printf("Error - send\n");
- -
- printf("ŚCIANA !\n");
- nowy_labirynt[xn][yn] = '1';
- xn++;
- break;
- case '0':
- if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
- printf("Error - send\n");
- nowy_labirynt[xn+1][yn] = '0';
- nowy_labirynt[xn][yn] = c;
- break;
- }
- printf("************ %d %d ******************************************\n",xn,yn);
- show_dungeon();
- break;
- case 'd':
- xn++;
- switch(labirynt[xn][yn])
- {
- case '1':
- if(send( fdTab[i],"SCIANA!\n",14,0)==-1)
- printf("Error - send\n");
- printf("ŚCIANA !\n");
- nowy_labirynt[xn][yn] = '1';
- xn--;
- break;
- case '0':
- if(send( fdTab[i],"PRZESUNIECIE\n",14,0)==-1)
- printf("Error - send\n");
- nowy_labirynt[xn-1][yn] = '0';
- nowy_labirynt[xn][yn] = c;
- break;
- }
- printf("************ %d %d ******************************************\n",xn,yn);
- show_dungeon();
- break;
- //default:
- //printf("\nUzywaj WSAD do poruszania\n");
- //break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement