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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 創建TCP服務器 程序代碼 ---- server.php ```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事件回調 執行程序 ---- ```shell php server.php ``` 在命令行下運行server.php程序,啟動成功后可以使用 `netstat` 工具看到,已經在監聽9501端口。這時就可以使用telnet/netcat工具連接服務器。 ```shell telnet 127.0.0.1 9501 hello Server: hello ``` 無法連接到服務器的簡單檢測手段 ---- * 在`Linux`下,使用`netstat -an | grep 端口`,查看端口是否已經被打開處于`Listening`狀態 * 上一步確認后,檢查防火墻問題 * 注意服務器所使用的IP地址,如果是`127.0.0.1`回環地址,則客戶端只能使用`127.0.0.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>

                              哎呀哎呀视频在线观看