濮阳杆衣贸易有限公司

主頁 > 知識庫 > PHP使用swoole編寫簡單的echo服務(wù)器示例

PHP使用swoole編寫簡單的echo服務(wù)器示例

熱門標(biāo)簽:南寧電話外呼系統(tǒng)線路 南京3D地圖標(biāo)注 邢臺400電話辦理 咸陽電銷 正規(guī)電銷機(jī)器人系統(tǒng) 重慶外呼電銷系統(tǒng)多少錢 濟(jì)源百應(yīng)電銷機(jī)器人聯(lián)系方式 辦理400電話哪家好點(diǎn) 嘟嘟云外呼系統(tǒng)

本文實(shí)例講述了PHP使用swoole編寫簡單的echo服務(wù)器。分享給大家供大家參考,具體如下:

server.php代碼如下:

?php
class EchoServer {
  protected $serv = null;
 
  public function __construct() {
    $this->serv = new swoole_server('0.0.0.0', 8888);
    //配置參數(shù)
    $this->serv->set(array(
      'worker_num' => 4,
      'daemonize' => 0,
    ));
    //注冊回調(diào)函數(shù)
    $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'));
    //啟動服務(wù)
    $this->serv->start();
  }
 
  public function start($serv) {
    echo "start \n";
  }
 
  //有客戶端連接時(shí)
  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";
    //向客戶端發(fā)送信息
    $serv->send($fd, $data . "\n");
  }
}
 
$serv = new EchoServer();

client.php代碼如下:

?php
class EchoClient {
  protected $client = null;
 
  public function __construct() {
    //注意這里需設(shè)置為異步,不然下面無法設(shè)置事件回調(diào)函數(shù)
    $this->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'));
    //連接服務(wù)端
    $this->client->connect('0.0.0.0', 8888);
  }
 
  public function connect($client) {
    echo "connect \n";
  }
 
  public function receive($client, $data) {
    echo "server send: {$data}";
 
    //向標(biāo)準(zhǔn)輸出寫入數(shù)據(jù)
    fwrite(STDOUT, "請輸入消息:");
    //獲取標(biāo)準(zhǔn)輸入數(shù)據(jù)
    $msg = trim(fgets(STDIN));
    //向服務(wù)端發(fā)送數(shù)據(jù)
    $client->send($msg);
  }
 
  public function close($client) {
    echo "close \n";
  }
 
  public function error($client) {
    echo "error \n";
  }
}
 
$cli = new EchoClient();

然后分別運(yùn)行這兩個(gè)腳本

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

運(yùn)行結(jié)果如下:

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php socket用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》及《php程序設(shè)計(jì)算法總結(jié)》

希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • PHP5.4起內(nèi)置web服務(wù)器使用方法
  • phpstorm遠(yuǎn)程連接服務(wù)器并實(shí)時(shí)更新發(fā)布代碼(thinkphp6.0.7)
  • PhpStorm連接服務(wù)器并實(shí)現(xiàn)自動上傳功能
  • php實(shí)現(xiàn)的簡單多進(jìn)程服務(wù)器類完整示例
  • 在phpstudy集成環(huán)境下的nginx服務(wù)器下配置url重寫
  • php服務(wù)器的系統(tǒng)詳解
  • Windows服務(wù)器中PHP如何安裝redis擴(kuò)展
  • PHP如何將圖片文件上傳到另外一臺服務(wù)器上
  • 微信小程序上傳圖片到php服務(wù)器的方法
  • PHP 內(nèi)置WEB服務(wù)器的簡單使用

標(biāo)簽:通遼 黃山 武漢 隴南 平頂山 唐山 南通 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《PHP使用swoole編寫簡單的echo服務(wù)器示例》,本文關(guān)鍵詞  PHP,使用,swoole,編寫,簡單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《PHP使用swoole編寫簡單的echo服務(wù)器示例》相關(guān)的同類信息!
  • 本頁收集關(guān)于PHP使用swoole編寫簡單的echo服務(wù)器示例的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    永康市| 四子王旗| 沿河| 昌平区| 威宁| 宁夏| 斗六市| 金川县| 太仓市| 广德县| 洞口县| 苗栗市| 金秀| 龙海市| 肇源县| 兴山县| 平江县| 长岭县| 南靖县| 长宁县| 西安市| 攀枝花市| 阜平县| 晋城| 五常市| 拜泉县| 开鲁县| 高清| 盐池县| 顺平县| 孝昌县| 蒲江县| 桦川县| 衡水市| 东兰县| 平塘县| 鄂州市| 礼泉县| 天祝| 盘锦市| 文安县|