ホームページ  >  記事  >  バックエンド開発  >  PHPリスニングソケット

PHPリスニングソケット

WBOY
WBOYオリジナル
2016-07-25 08:47:27894ブラウズ
PHPリスニングソケット

                                                                                                                                                                                                                                                                                                                            


set_time_limit(10);
$commonProtocol = getprotobyname("tcp");
    $socket =ソケット_create(AF_INET, SOCK_STREAM, $commonProtocol);
  1. if ($socket) {
  2. $result =ソケットバインド($socket, 'localhost', 1337);
  3. if ($result) {
  4. $result =ソケット_listen($socket, 5);
  5. if ($result) {
  6. echo "リスニング成功";
  7. }
  8. }
  9. }else{
  10. echo "リスニングに失敗しました";
  11. }
  12. do {
  13. if (($msgsock =ソケット_accept($socket))) { /* 接続中のユーザーにプロンプ​​ト情報を送信します*/
  14. $msg = "======== = ================================rn" .
  15. "PHP テスト サーバーへようこそ rnrn" .
  16. "終了するには、「quit」.rn と入力します。" .
  17. "サーバーをシャットダウンするには、「shutdown」.rn と入力します。" .
  18. "ヘルプ メッセージを表示するには、「help'.rn」と入力します。" .
  19. "======= = ===================================rn" .
  20. "php>";
  21. }
  22. socket_write ( $msgsock, $msg, strlen($msg));
  23. do {
  24. $buf =ソケット_read($msgsock, 2048, PHP_BINARY_READ);
  25. if (false === $buf) {
  26. echo "socket_read() failed :reason: " .socket_strerror($result) . "n";
  27. Break 2;
  28. }
  29. if (!$buf = trim($buf)) {
  30. continue;
  31. } /* クライアントが入ったらクライアントを閉じるquit コマンド 接続を終了します*/
  32. if ($buf == 'q') {
  33. Break;
  34. } /* クライアントが shutdown コマンドを入力すると、サーバーとクライアントの両方がシャットダウンされます*/
  35. if ($buf == 'shutdown') {
  36. socket_close($msgsock);
  37. break 2;
  38. } /* クライアントがヘルプコマンドを入力したときにヘルプ情報を出力します*/
  39. if ($buf == 'h') {
  40. $msg = "PHP サーバー ヘルプ メッセージ rnrn"。
  41. " 終了するには、「quit」と入力します。rn" .
  42. " サーバーをシャットダウンするには、「shutdown'.rn」と入力します。
  43. " ヘルプ メッセージを表示するには、「help'.rn」と入力します。
  44. "php> ";
  45. socket_write ($msgsock, $msg, strlen($msg));
  46. continue;
  47. } /* クライアント入力コマンドが存在しない場合のプロンプトメッセージ*/
  48. $talkback = "PHP: 不明なコマンド'$buf'.rnphp> ";
  49. socket_write($msgsock, $talkback, strlen($talkback));
  50. echo "$bufn";
  51. } while (true);
  52. socket_close($msgsock);
  53. }while ( true);
  54. /* ソケット接続を閉じる */
  55. socket_close($socket);
  56. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。