Advertisement
Guest User

Main

a guest
Dec 11th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <netinet/in.h>
  6. #include <sys/types.h>
  7. #include <sys/socket.h>
  8. #include <arpa/inet.h>
  9. #include <netdb.h>
  10. #include <stdbool.h>
  11. #include "Statki.h"
  12.  
  13. #define PORT 15000
  14.  
  15.  
  16. const int rows = 10;
  17. const int elements = 10;
  18. int maxships = 10;
  19. int matrix[10][10];
  20.  
  21.  
  22. int main()
  23. {
  24. fd_set master;
  25. fd_set read_fds;
  26. struct sockaddr_in myaddr;
  27. struct sockaddr_in remoteaddr;
  28. int fdmax;
  29. int listener;
  30. int newfd;
  31. int nbytes;
  32. int yes = 1;
  33. int addrlen;
  34. int i, pierwszy, drugi;
  35.  
  36. FD_ZERO( & master );
  37. FD_ZERO( & read_fds );
  38.  
  39.  
  40. if(( listener = socket( AF_INET, SOCK_STREAM, 0 ) ) == - 1 )
  41. {
  42. perror( "socket" );
  43. exit( 1 );
  44. }
  45.  
  46.  
  47. if( setsockopt( listener, SOL_SOCKET, SO_REUSEADDR, & yes, sizeof( int ) ) == - 1 )
  48. {
  49. perror( "setsockopt" );
  50. exit( 1 );
  51. }
  52.  
  53.  
  54. myaddr.sin_family = AF_INET;
  55. myaddr.sin_addr.s_addr = INADDR_ANY;
  56. myaddr.sin_port = htons( PORT );
  57. memset( &( myaddr.sin_zero ), '\0', 8 );
  58. if( bind( listener,( struct sockaddr * ) & myaddr, sizeof( myaddr ) ) == - 1 )
  59. {
  60. perror( "bind" );
  61. exit( 1 );
  62. }
  63.  
  64.  
  65. if( listen( listener, 10 ) == - 1 )
  66. {
  67. perror( "listen" );
  68. exit( 1 );
  69. }
  70.  
  71. FD_SET( listener, & master );
  72.  
  73. fdmax = listener;
  74.  
  75.  
  76. for(;; ) {
  77. read_fds = master;
  78. if( select( fdmax + 1, & read_fds, NULL, NULL, NULL ) == - 1 )
  79. {
  80. perror( "select" );
  81. exit( 1 );
  82. }
  83.  
  84. for( i = 0; i <= fdmax; i++ )
  85. {
  86. if(i<=5)
  87. {
  88. if( i == listener )
  89. {
  90. addrlen = sizeof( remoteaddr );
  91. if(( newfd = accept( listener,( struct sockaddr * ) & remoteaddr, & addrlen ) ) == - 1 )
  92. {
  93. perror( "accept" );
  94. }
  95. else
  96. {
  97. FD_SET( newfd, & master );
  98. if( newfd > fdmax )
  99. {
  100. fdmax = newfd;
  101. if(i==4)
  102. {
  103. pierwszy = newfd;
  104. printf( "selectserver: new connection from %s on ""socket %d\n", inet_ntoa( remoteaddr.sin_addr ), pierwszy );
  105. }
  106. else
  107. {
  108. drugi = newfd;
  109. printf( "selectserver: new connection from %s on ""socket %d\n", inet_ntoa( remoteaddr.sin_addr ), drugi );
  110. }
  111. }
  112. }
  113. }
  114. else
  115. {
  116. if(i==5)
  117. {
  118. send(4,"gra sie zaczyna\n", strlen("gra sie zaczyna\n"),0);
  119. send(5,"gra sie zaczyna\n", strlen("gra sie zaczyna\n"),0);
  120. start_gry();
  121. }
  122. }
  123. }
  124. else
  125. {
  126. send(i,"spadaj",strlen("spadaj"),0);
  127. }
  128. }
  129. }
  130. return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement