<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                TCP 協議是一個可靠的傳輸協議,當數據傳輸中需要可靠的數據傳輸,并且數據到達順序嚴格遵守發送順序。如果數據傳輸失敗需要重試,并且可以容忍偶爾發生延時,則推薦使用 TCP 協議。 在網絡游戲開發中,TCP 協議扮演了重要的角色,很多即時對戰的游戲都嚴重的依賴 TCP 協議。如魔獸世界,穿越火線等 > 當然,像魔獸世界這種大型網絡游戲不可能只使用一種網絡協議,我們只是針對當前章節舉例 TCP 協議需要為每個客戶端都建立一個 Socket 連接,傳輸的數據包沒有大小限制。相比 UDP 協議而言,TCP 協議對服務器性能要求更大。 接下來我們演示一下,如何使用 ThinkPHP5 和 Swoole 來建立一個 TCP 服務器。 創建 ThinkPHP5 自定義命令行 1.創建命令行類 - 創建application/console/TcpServer.php文件 ~~~ <?php namespace app\Console; use think\console\Command; use think\console\Input; use think\console\Output; class TcpServer extends Command { protected $server; // 命令行配置函數 protected function configure() { // setName 設置命令行名稱 // setDescription 設置命令行描述 $this->setName('tcp:start')->setDescription('Start TCP Server!'); } // 設置命令返回信息 protected function execute(Input $input, Output $output) { $this->server = new \swoole_server('0.0.0.0', 9501); $this->server->set([ 'worker_num' => 4, 'daemonize' => false, ]); $this->server->on('Start', [$this, 'onStart']); $this->server->on('Connect', [$this, 'onConnect']); $this->server->on('Receive', [$this, 'onReceive']); $this->server->on('Close', [$this, 'onClose']); $this->server->start(); // $output->writeln("TCP: Start.\n"); } // 主進程啟動時回調函數 public function onStart(\swoole_server $serv) { echo "Start\n"; } // 建立連接時回調函數 public function onConnect(\swoole_server $server, $fd, $from_id) { echo "Connect\n"; } // 收到信息時回調函數 public function onReceive(\swoole_server $server, $fd, $from_id, $data) { echo "message: {$data} form Client: {$fd} \n"; // 將受到的客戶端消息再返回給客戶端 $server->send($fd, "Message form Server: ".$data); } // 關閉連時回調函數 public function onClose(\swoole_server $server, $fd, $from_id) { echo "Close\n"; } } ~~~ TCP 服務器常用的回調函數是onStart,onConnect,onReceive,onClose,分別是主進程的主線程啟動時回調,客戶端連接時回調,收到信息時回調,關閉連接時回調。接下來的章節介紹的onWorkerStart,onTimer,onTask,onFinish,等回調函數也可以應用在 TCP 服務器,本章節暫時不詳述。 2.修改配置文件 - 文件所在 application/command.php ~~~ <?php return [ 'app\console\TcpServer', ]; ~~~ 接下來就可以通過命令行來啟動 TCP 服務器 1 $ > `php think tcp:start` 看見如下返回說明 TCP 服務器啟動成功 使用telnet工具來連接 TCP 服務器,下個章節我們會直接講解如何使用 Swoole 的 TCP 客戶端來連接 TCP 服務器 `telnet 127.0.0.1 9501` 輸入Hello后會得到以下結果 >Hello Message form Server: Hello 同時服務器端也會顯示出以下回執消息,來顯示 TCP 服務器的客戶端連接狀態 >Start Connect message: Hello form Client: 1
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看