亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

直接寫入套接字與緩沖區

直接寫入套接字與緩沖區

Go
蠱毒傳說 2022-12-26 16:29:48
我已經看到多個應用程序首先將它們的數據寫入緩沖區,然后將該緩沖區寫入 socket而不僅僅是直接寫入 socket。我有兩個問題:這是為什么?如果直接寫入套接字是合理的,那么:如何讓套接字等待更多數據(我們在這里處理微秒/納秒延遲)或者如何明確告訴套接字 發送(不寫入內部緩沖區)數據?,F在內核正在發送我在單獨數據包中寫入的每個字節,這顯然不是最佳的;)我在Go中制作我的應用程序,這里net.Conn實現了 io.Writer并且創建帶有2 個參數的實用函數是有意義的:writer 本身和正在寫入的數據,所以最后我可以輸入它并且很高興:packets.WriteUint8(conn, 0x0)我知道在許多語言中,緩沖區都有自己的實用方法來寫入/讀取結構,但是如果我想專門在 Go 中嘗試上述方法怎么辦?我試過尋找類似的問題,但失敗了。信息:應用程序旨在在 Linux 上運行
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

應用程序緩沖寫入網絡連接,因為使用大緩沖區的單個寫入調用比使用小緩沖區的多個寫入調用更有效。

調用SetNoDelay (false)使操作系統延遲數據包傳輸,希望減少數據包的數量。

沒有顯式刷新 TCP 連接緩沖區的選項。

在編寫您自己的實用程序之前,請查看bufio.Writer類型。許多應用程序使用這種類型來緩沖對 TCP 連接和文件的寫入。


查看完整回答
反對 回復 2022-12-26
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號