要應用鍵盤輸入的一些知識如下例子:
- <?php
- fwrite(STDOUT, "Please input your name:\t");
- echo $name = trim(fgets(STDIN));
- fwrite(STDOUT, 'Hello ' . $name);
- ?>
點對點通信開始
1.SERVER
- <?php
- // 建立server端socket
- $tcp = getprotobyname("tcp");
- $socket = socket_create(AF_INET, SOCK_STREAM, $tcp);
- socket_bind($socket, '127.0.0.1', 10008); //綁定要監聽的端口
- socket_listen($socket); //監聽端口
- $connection = socket_accept($socket);
- if(!$connection){
- echo "connect fail";
- }
- $data = @socket_read($connection, 1024, PHP_NORMAL_READ);
- printf("Client: " . $data);
- //鍵盤輸入信息
- while ($buffer= trim(fgets(STDIN))) {
- if($buffer =="bye") break;
- // 向客戶端傳遞一個信息數據
- socket_write($connection, $buffer . "\n");
- // 從客戶端取得信息
- $data = @socket_read($connection, 1024, PHP_NORMAL_READ);
- printf("Client : " . $data);
- }
- socket_close($connection);
- //關閉 socket
- printf("Closed the socket\n");
- ?>
2:CLIENT
- <?php
- // 建立客戶端的socet連接
- $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
- $connection = socket_connect($socket, '127.0.0.1', 10008); //連接服務器端socket
- //鍵盤輸入信息
- while ($data= trim(fgets(STDIN))) {
- if($data =="exit") break;
- // 將客戶的信息寫到通道中,傳給服務器端
- if (!socket_write($socket, $data."\n")) {
- echo "Write failed\n";
- }
- //服務器端收到信息後,給於的迴應信息
- $buffer = socket_read($socket, 1024, PHP_NORMAL_READ);
- if($buffer=="bye") break;
- echo "Server Data:" . $buffer;
- }
- ?>