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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] * * * * * ## 1 網絡連接文件 ~~~ Workerman/Connection/ ConnectionInterface.php ;網絡連接接口 TcpConnection.php ;Tcp網絡連接 UpdConnection.php ;Udp網絡連接 AsyncTcpConnection.php ;異步Tcp網絡連接 ~~~ ## 2 網絡連接接口(ConnectionInterface.php) ~~~ ;連接統計:連接總數,請求總數,異常總數,發送失敗總數 public static $statistics = array( 'connection_count' => 0, 'total_request' => 0, 'throw_exception' => 0, 'send_fail' => 0, ); ;接受數據回調,連接關閉回調,發生錯誤回調 public $onMessage = null; public $onClose = null; public $onError = null; ~~~ ~~~ ;連接發送數據接口 abstract public function send($send_buffer); ;獲取客戶端Ip接口 abstract public function getRemoteIp(); ;獲取客戶端端口接口 abstract public function getRemotePort(); ;關閉連接接口 abstract public function close($data = null); ~~~ ## 3 Tcp網絡連接(TcpConnection.php) >[info] 成員變量 ~~~ ;數據讀取緩存區上限 const READ_BUFFER_SIZE = 65535; ;連接狀態:建立連接,完成建立,正在關閉,關閉完成 const STATUS_CONNECTING = 1; const STATUS_ESTABLISH = 2; const STATUS_CLOSING = 4; const STATUS_CLOSED = 8; ;連接回調接口:接受數據,連接關閉,發生錯誤,數據滿,數據發送 public $onMessage = null; public $onClose = null; public $onError = null; public $onBufferFull = null; public $onBufferDrain = null; ;應用層協議,所屬worker進程,連接id,所屬worker的id public $protocol = null; public $worker = null; public $id = 0; protected $_id = 0; ;數據包發送緩存最大上限,數據包發送緩存默認上限, public $maxSendBufferSize = 1048576; public static $defaultMaxSendBufferSize = 1048576; ;最大可發送數據包 public static $maxPackageSize = 10485760; protected static $_idRecorder = 1; ;socket套接符,發送緩存,接受緩存,當前數據包大小 protected $_socket = null; protected $_sendBuffer = ''; protected $_recvBuffer = ''; protected $_currentPackageLength = 0; ;當前鏈接狀態,客戶端地址,是否阻塞 protected $_status = self::STATUS_ESTABLISH; protected $_remoteAddress = ''; protected $_isPaused = false; ~~~ >[info] 成員方法 ### __construct($socket, $remote_address = ''):Tcp連接構造函數 ~~~ public function __construct($socket, $remote_address = '') ~~~ > $socket: 監聽套接字 > $remote_address:客戶端地址 * * * * * ### send($send_buffer, $raw = false):tcp數據發送接口 ~~~ public function send($send_buffer, $raw = false) ~~~ > $send_buffer:發送內容 > $raw:?? * * * * * ### getRemoteIp():獲取客戶端ip ~~~ public function getRemoteIp() ~~~ ### getRemotePort():獲取客戶端端口 ~~~ public function getRemotePort() ~~~ ### pauseRecv():阻塞讀數據 ~~~ public function pauseRecv() ~~~ ### resumeRecv():恢復讀數據 ~~~ public function resumeRecv() ~~~ ### baseRead($socket, $check_eof = true):tcp讀數據 ~~~ public function baseRead($socket, $check_eof = true) ~~~ > $socket:socket描述符 > $check_eof:?? * * * * * ### baseWrite():tcp寫數據 ~~~ public function baseWrite() ~~~ ### pipe($dest):數據重定向 ~~~ public function pipe($dest) ~~~ > $dest:重定向目的 * * * * * ### consumeRecvBuffer($length):截取數據接收區 ~~~ public function consumeRecvBuffer($length) ~~~ > $length:截取長度 * * * * * ### close($data = null):tcp連接關閉接口 ~~~ public function close($data = null) ~~~ > $data:關閉時發送數據 * * * * * ### destroy():tcp鏈接注銷接口 ~~~ public function destroy() ~~~ ### getSocket():獲取連接socket描述符 ~~~ public function getSocket() ~~~ ### checkBufferIsFull():檢測發送緩沖區是否達到上限 ~~~ protected function checkBufferIsFull() ~~~ ## 4 Udp網絡連接(UpdConnection.php) >[info] 成員變量 ~~~ ;udp應用層協議 public $protocol = null; ;udp連接socket描述 protected $_socket = null; ;客戶端ip protected $_remoteIp = ''; ;客戶端端口 protected $_remotePort = 0; ;客戶端地址 protected $_remoteAddress = ''; ~~~ >[info] 成員方法 ### __construct($socket, $remote_address):Udp構造函數 `public function __construct($socket, $remote_address)` ### send($send_buffer, $raw = false):Udp連接數據發送接口 `public function send($send_buffer, $raw = false)` ### getRemoteIp():獲取客戶端ip `public function getRemoteIp()` ### getRemotePort():獲取客戶端端口 `public function getRemotePort()` ### close($data = null):連接關閉 `public function close($data = null)` ## 5 異步Tcp網絡連接(AsyncTcpConnection.php) >[info] 成員變量 ~~~ ;連接回調 public $onConnect = null; ;連接默認狀態 protected $_status = self::STATUS_CONNECTING; ;客戶端主機 protected $_remoteHost = ''; ~~~ >[info] 成員方法 ### __construct($remote_address):異步Tcp構造函數 public function __construct($remote_address) ### connect():建立 異步Tcp連接 public function connect() ### getRemoteHost():獲取客戶端主機 public function getRemoteHost() ### emitError($code, $msg):手動觸發錯誤回調 protected function emitError($code, $msg) ### checkConnection($socket):檢查連接是否建立 public function checkConnection($socket) ## 4 網絡連接總結 網絡連接實現服務器與客戶端的對應關系。 ~~~ ConnectionInterface.php 網絡連接抽象 Tcp 連接網絡連接 Udp 數據包網絡連接 異步Tcp 異步連接 ~~~
                  <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>

                              哎呀哎呀视频在线观看