PHP listening Socket
set_time_limit(10); $commonProtocol = getprotobyname("tcp"); $socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);- if ($socket) {
- $result = socket_bind($socket, 'localhost', 1337);
- if ($result) {
- $result = socket_listen($socket, 5);
- if ($result) {
- echo "Listening successful";
- }
- }
- }else{
- echo "Listening failed";
- }
- do {
- if (($msgsock = socket_accept($socket))) { /* Send prompt information to the connected user*/
- $msg = "======== ==================================rn" .
- "Welcome to the PHP Test Server. rnrn" .
- "To quit, type 'quit'.rn" .
- "To shut down the server type 'shutdown'.rn" .
- "To get help message type 'help'.rn" .
- "======= =====================================rn" .
- "php>";
- }
-
- socket_write( $msgsock, $msg, strlen($msg));
-
- do {
- $buf = socket_read($msgsock, 2048, PHP_BINARY_READ);
-
- if (false === $buf) {
- echo "socket_read() failed : reason: " . socket_strerror($result) . "n";
- break 2;
- }
- if (!$buf = trim($buf)) {
- continue;
- } /* Close the client when the client enters the quit command End connection*/
- if ($buf == 'q') {
- break;
- } /* When the client enters the shutdown command, both the server and the client are shut down*/
- if ($buf == 'shutdown') {
- socket_close($msgsock);
- break 2;
- } /* Output help information when the client enters the help command*/
- if ($buf == 'h') {
- $msg = "PHP Server Help Message rnrn".
- " To quit, type 'quit'. rn" .
- " To shut down the server type 'shutdown'.rn" .
- " To get help message type 'help'.rn" .
- "php> ";
- socket_write ($msgsock, $msg, strlen($msg));
- continue;
- } /* Prompt message when the client input command does not exist*/
- $talkback = "PHP: unknown command '$buf'.rnphp> ";
- socket_write($msgsock, $talkback, strlen($talkback));
- echo "$bufn";
- } while (true);
- socket_close($msgsock);
- }while (true);
- /* Close Socket connection */
- socket_close($socket);
-
-
- Copy code
|