日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了從套接字到套接字的零分配復制的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

假設我們有一個套接字連接(讓我們稱之為c1),
我們還有N個其他套接字連接,我們要寫入完全相同的消息,
要確定我們希望它寫入哪個連接,我們只需要從c1讀取前幾個字節,但套接字上的其余字節不需要加載到Java堆中,只需寫入c2

簡而言之,我們想要做的是。
我們在c1上有要讀取的字節數的事件
我們讀取前幾個字節,并確定我們知道要將其重定向到c2
我們將已經從c1獲取的前幾個字節寫入c2,現在我們想告訴系統直接從c1寫入c2c2(而不是c1->Java heap->c2)。

Java中有什么方法可以做到這一點嗎?


更新

雖然答案是切中要害的,但如果您正在構建這樣的東西(即使不僅是為了多路傳輸,還為了一些小的業務邏輯),我強烈建議您使用ZeroMQ。

推薦答案

假設我們正在執行C++操作,有沒有辦法告訴操作系統在不加載到應用程序內存的情況下將數據從一個緩沖區傳遞到另一個緩沖區?

所以基本上問題是Linux是否允許將N個字節從套接字緩沖區A傳遞到套接字緩沖區B(我們可以安全地假設我們在Linux上,并且沒有其他人正在讀取或寫入A和B)

使用Linux發送文件和系統調用可以做到這一點。

引用:

http://man7.org/linux/man-pages/man2/sendfile.2.html

但是,Java I/O類庫不支持此功能。

更新-顯然支持;請參閱FileChannel::transferTo方法。請參見FileChannel zero-copy transferTo fails to copy bytes to SocketChannel的答案,以獲取與套接字一起使用的示例。但是,尚不清楚它是否可用于套接字到套接字復制。

更新2-根據對Using Java to perform Zero Copy data transfers between two or more sockets的回答,我認為答案可能是:&不能。還沒有。

更新3-這是RFE-https://bugs.openjdk.java.net/browse/JDK-6653061

這篇關于從套接字到套接字的零分配復制的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:分配 復制
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定