Рубрики
Uncategorized

PHP использует spool для написания простого примера эхо-сервера

Автор оригинала: David Wong.

В этой статье описывается простой эхо-сервер, написанный на PHP с использованием spool. Подробности заключаются в следующем:

сервер. php Код выглядит следующим образом:

serv = new swoole_server('0.0.0.0', 8888);
    //Configuration parameters
    $this->serv->set(array(
      'worker_num' => 4,
      'daemonize' => 0,
    ));
    //Register callback function
    $this->serv->on('start', array($this, 'start'));
    $this->serv->on('connect', array($this, 'connect'));
    $this->serv->on('receive', array($this, 'receive'));
    $this->serv->on('close', array($this, 'close'));
    //Start the service
    $this->serv->start();
  }
 
  public function start($serv) {
    echo "start \n";
  }
 
  //When there is a client connection
  public function connect($serv, $fd) {
    echo "connect \n";
    $serv->send($fd, "hello \n");
  }
 
  public function close($serv, $fd) {
    echo "close \n";
  }
 
  public function receive($serv, $fd, $from_id, $data) {
    echo "get message {$fd} : {$data} \n";
    //Send information to client
    $serv->send($fd, $data . "\n");
  }
}
 
$serv = new EchoServer();

client.php Код выглядит следующим образом:

client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC);
 
    $this->client->on('connect', array($this, 'connect'));
    $this->client->on('receive', array($this, 'receive'));
    $this->client->on('close', array($this, 'close'));
    $this->client->on('error', array($this, 'error'));
    //Connecting to the server
    $this->client->connect('0.0.0.0', 8888);
  }
 
  public function connect($client) {
    echo "connect \n";
  }
 
  public function receive($client, $data) {
    echo "server send: {$data}";
 
    //Write data to standard output
    Fwrite (stdout, "please input message");
    //Get standard input data
    $msg = trim(fgets(STDIN));
    //Send data to server
    $client->send($msg);
  }
 
  public function close($client) {
    echo "close \n";
  }
 
  public function error($client) {
    echo "error \n";
  }
}
 
$cli = new EchoClient();

Затем запустите два сценария отдельно

> /data/php56/bin/php server.php
> /data/php56/bin/php client.php

Результаты заключаются в следующем

Для получения дополнительной информации о PHP читатели, интересующиеся им, могут ознакомиться со следующими темами: краткое описание навыков сетевого программирования PHP, краткое описание использования сокетов PHP, вводный курс объектно-ориентированного программирования PHP, учебное пособие по структуре и алгоритму данных PHP и краткое описание алгоритма программирования PHP

Я надеюсь, что эта статья полезна для программирования на PHP.

Оригинал: “https://developpaper.com/php-uses-spool-to-write-a-simple-echo-server-example/”