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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Server->send [TOC] 向客戶端發送數據,函數原型: ~~~ bool Server->send(mixed $fd, string $data, int $serverSocket = -1); ~~~ 發送過程是異步的,底層會自動監聽可寫,將數據逐步發送給客戶端 ## 參數 * `$fd`,客戶端的文件描述符 * `$data`,發送的數據,`TCP`協議最大不得超過`2M`,可修改[buffer\_output\_size](buffer\_output\_size.md)改變允許發送的最大包長度 * `$serverSocket`,向`Unix Socket DGRAM`對端發送數據時需要此項參數,`TCP`客戶端不需要填寫 ## 返回值 * 發送成功會返回`true` * 發送失敗會返回`false`,調用`$server->getLastError()`方法可以得到失敗的錯誤碼 ## 安全性 * `send`操作具有原子性,多個進程同時調用`send`向同一個`TCP`連接發送數據,不會發生數據混雜 ## 長度限制 * 如果要發送超過`2M`的數據,可以將數據寫入臨時文件,然后通過`sendfile`接口進行發送 * 通過設置[buffer\_output\_size](buffer\_output\_size.md)參數可以修改發送長度的限制 * 在發送超過`8K`的數據時,底層會啟用`Worker`進程的共享內存,需要進行一次`Mutex->lock`操作 ## 緩存區 * 當`Worker`進程的管道緩存區已滿時,發送`8K`數據將啟用臨時文件存儲 * 如果連續向同一個客戶端發送大量數據,可能會導致`Socket`內存緩存區塞滿,底層會立即返回`false`,應用程序可以調整`socket_buffer_size`設置,或 將數據保存到磁盤,等待客戶端收完已發送的數據后再進行發送 ## 協程調度 在協程模式下`send`遇到緩存區已滿時會自動掛起,當觸發`onBufferEmpty`時恢復協程,繼續發送數據。 ## UnixSocket 監聽`UnixSocket DGRAM`端口時,可以使用`send`向對端發送數據。 ~~~ $serv->on("packet", function (Swoole\Server $serv, $data, $addr) { $serv->send($addr['address'], 'SUCCESS', $addr['server_socket']); }); ~~~
                  <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>

                              哎呀哎呀视频在线观看