<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>

                # 創建TCP服務器 ### 程序代碼 server.php ~~~ //創建Server對象,監聽 127.0.0.1:9501端口 $serv = new swoole_server("127.0.0.1", 9501); //監聽連接進入事件 $serv->on('connect', function ($serv, $fd) { echo "Client: Connect.\n"; }); //監聽數據發送事件 $serv->on('receive', function ($serv, $fd, $from_id, $data) { $serv->send($fd, "Server: ".$data); }); //監聽連接關閉事件 $serv->on('close', function ($serv, $fd) { echo "Client: Close.\n"; }); //啟動服務器 $serv->start(); ~~~ 這里就創建了一個TCP服務器,監聽本機9501端口。它的邏輯很簡單,當客戶端Socket通過網絡發送一個 `hello` 字符串時,服務器會回復一個 `Server: hello` 字符串。 swoole_server是異步服務器,所以是通過監聽事件的方式來編寫程序的。當對應的事件發生時底層會主動回調指定的PHP函數。如當有新的TCP連接進入時會執行onConnect事件回調,當某個連接向服務器發送數據時會回調onReceive函數。 - 服務器可以同時被成千上萬個客戶端連接,$fd就是客戶端連接的唯一標識符 - 調用 `$server->send()` 方法向客戶端連接發送數據,參數就是$fd客戶端標識符 - 調用 `$server->close()` 方法可以強制關閉某個客戶端連接 - 客戶端可能會主動斷開連接,此時會觸發onClose事件回調 ### 執行程序 ~~~ php server.php ~~~ 在命令行下運行server.php程序,啟動成功后可以使用 `netstat` 工具看到,已經在監聽9501端口。這時就可以使用telnet/netcat工具連接服務器。 ~~~ telnet 127.0.0.1 9501 hello Server: hello ~~~
                  <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>

                              哎呀哎呀视频在线观看