Advertisement
PlotnikovPhilipp

Untitled

Nov 1st, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.54 KB | None | 0 0
  1. <?php
  2.     function go() {
  3.         $starttime = round(microtime(true),2);
  4.         $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
  5.         socket_bind($socket, '192.168.1.2', 4000);
  6.         socket_listen($socket, 10);
  7.         socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1);
  8.         while(true){ //Бесконечный цикл ожидания подключений
  9.             $accept = @socket_accept($socket); //Зависаем пока не получим ответа
  10.             if($accept === false) {
  11.                 echo "Error: ".socket_strerror(socket_last_error())."<br />\r\n";
  12.                 usleep(100);
  13.             }
  14.            
  15.            
  16.             socket_write($accept, "Привет");
  17.            
  18.  
  19.         }
  20.     }
  21.     $getMsg = getallheaders()['Sec-WebSocket-Key'];
  22.     $guid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
  23.     $sec_websocket_accept = trim(substr($getMsg, strpos($getMsg, 'Sec-WebSocket-Key:') + 18)).$guid;
  24.     $sec_websocket_accept = sha1($sec_websocket_accept, true);
  25.     $sec_websocket_accept = base64_encode($sec_websocket_accept);
  26.     header("HTTP/1.1 101 Switching Protocols");
  27.     header("Upgrade: websocket");
  28.     header("Connection: Upgrade");
  29.     header("Sec-WebSocket-Accept: $sec_websocket_accept");
  30.     header('Sec-WebSocket-Extensions: deflate-frame');
  31.     header('Sec-WebSocket-Protocol: soap');
  32.    
  33.     $socket = go();
  34.     if (isset($socket)) {
  35.         echo "Closing connection... ";
  36.         @socket_shutdown($socket);
  37.         socket_close($socket);
  38.         echo "OK <br />\r\n";
  39.     }
  40. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement