Advertisement
Guest User

azzaz

a guest
Nov 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.02 KB | None | 0 0
  1. /*LOU JEREMY et BASILE MAUVIEUX*/
  2.  
  3. <?php
  4. $host    = "172.19.3.32";
  5. $port    = 25003;
  6.  
  7. $message=" ";
  8. $message = strtolower(trim(fgets(STDIN)));
  9. $tmsg=explode(" ", $message);
  10. if($tmsg[0]=="stop" || $tmsg[0]=="put" || $tmsg[0]=="get")
  11. {
  12. // create socket TCP + données hors bande
  13.     $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
  14. // connect to server
  15.     $result = socket_connect($socket, $host, $port) or die("Could not connect to server\n");
  16.     while(true)
  17.     {
  18.         // send string to server
  19.         socket_write($socket, $message, strlen($message)) or die("Could not send data to server\n");
  20.         if($tmsg[0]==="put")
  21.         {
  22.             $file=fopen($tmsg[1], "r");
  23.             if($file==FALSE)
  24.                 echo "erreur fopen";
  25.             do
  26.             {
  27.                 socket_read($socket, 1024);
  28.                 $fmsg=fread($file, 1024);
  29.                 socket_write($socket, $fmsg, strlen($fmsg)) or die ("Could not send data to server");
  30.             }
  31.             while($fmsg==1024);
  32.             fclose($file);
  33.         }
  34.         if($tmsg[0]=="get")
  35.         {
  36.             $file=fopen(basename($tmsg[1]), "w");
  37.             if($file==FALSE)
  38.                 echo "erreur fopen";
  39.             do
  40.             {
  41.                 $input=socket_read($socket, 1024) or die ("Could not read input");
  42.                 $fmsg=fwrite($file, $input, 1024);
  43.                 if($fmsg==FALSE)
  44.                     echo "erreur fwrite";
  45.                 socket_write($socket, $input);
  46.             }
  47.             while($fmsg==1024);
  48.             fclose($file);
  49.         }
  50.         echo "Message To server :".$message."\n";
  51.  
  52.         // get server response
  53.         $result = socket_read ($socket, 1024) or die("Could not read server response\n");
  54.         echo "Reply From Server  :".$result."\n";
  55.         if($tmsg[0]=="stop")
  56.         {
  57.             break;
  58.         }
  59.         $message = strtolower(trim(fgets(STDIN)));
  60.         $tmsg=explode(" ", $message);
  61.         if($tmsg[0]=="stop")
  62.         {
  63.             socket_write($socket, $message, strlen($message));
  64.             socket_read($socket, 1024);
  65.             break;
  66.         }
  67.         if($tmsg[0]!="put" && $tmsg[0]!="get")
  68.         {
  69.             echo "Not a valid command\n";
  70.             break;
  71.         }
  72.     }
  73. // close socket
  74.     socket_close($socket);
  75. }
  76. else
  77. {
  78.     echo "Not a valid command\n";
  79. }
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90. /*LOU JEREMY et BASILE MAUVIEUX*/
  91.  
  92. <?php
  93. $host = "172.19.3.32";
  94. $port = 25003;
  95. $nbMaxClient = 10;
  96.  
  97. // don't timeout!
  98. set_time_limit(0);
  99.  
  100. // create socket
  101. $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
  102.  
  103. // bind socket to port
  104. $result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
  105.  
  106. // start listening for connections
  107. $result = socket_listen($socket, $nbMaxClient) or die("Could not set up socket listener\n");
  108. while(true)
  109. {
  110. // accept incoming connections
  111. // spawn another socket to handle communication
  112.     $spawn = socket_accept($socket) or die("Could not accept incoming connection\n");
  113.     // read client input and clean up input string
  114.     while(true)
  115.     {
  116.         $input = socket_read($spawn, 1024) or die("Could not read input\n");
  117.         socket_write($spawn, $input);
  118.         $tmsg=explode(" ", $input);
  119.         if($tmsg[0]==="put")
  120.         {
  121.             $file=fopen(basename($tmsg[1]), "w");
  122.             if($file==FALSE)
  123.                 echo "erreur fopen";
  124.             do
  125.             {
  126.                 $input=socket_read($spawn, 1024) or die ("Could not read input");
  127.                 echo "\n j'ouvre ".basename($tmsg[1])."\n je rentre les donnees ".$input."\n";
  128.                 $fmsg=fwrite($file, $input, 1024);
  129.                 if($fmsg===FALSE)
  130.                     echo "erreur fwrite";
  131.                 socket_write($spawn, $input);
  132.             }
  133.             while($fmsg==1024);
  134.             fclose($file);
  135.         }
  136.         if($tmsg[0]=="get")
  137.         {
  138.             $file=fopen($tmsg[1], "r");
  139.             if($file==FALSE)
  140.                 echo "erreur fopen";
  141.             do
  142.             {
  143.                 socket_read($spawn, 1024);
  144.                 $fmsg=fread($file, 1024);
  145.                 socket_write($spawn, $fmsg, strlen($fmsg)) or die ("Could not send data to server");
  146.             }
  147.             while($fmsg==1024);
  148.             fclose($file);
  149.         }
  150.         if($tmsg[0]=="stop")
  151.         {
  152.             socket_getpeername($spawn, $addr, $pport);
  153.             echo("Client Message : ".$input." de ".$addr.":".$pport."\n");
  154.             $input = trim($input);
  155.             $tmsg=explode(" ", $input);
  156.             //send back
  157.             socket_write($spawn, $input, strlen ($input)) or die("Could not write output\n");
  158.             if($tmsg[0]=="stop")
  159.             {
  160.                 break 2;
  161.             }
  162.         }
  163.     }
  164. }
  165. // close sockets
  166. socket_close($spawn);
  167. socket_close($socket);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement