看板 java 關於我們 聯絡資訊
我在用NIO的SocketChannel的時候碰到一個問題, 就是當Server端接受一個Client之後, 理論上我要attach一塊ByteBuffer給該channel。 問題是我從Client那邊傳過來的其實是一個自訂的Object, (那是一個自訂的Class,先轉成ByteArray後在轉成ByteBuffer) 所以我在Server這邊不知道該allocate多大的sizs囧 以前我在寫C的時候,只要使用sizeof就可以搞定了, 可是在Java上面似乎沒有這個功能,可以請問一下各位前輩該怎麼辦嗎0rz -- There is no secret behind the source code. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 72.181.136.182 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1433976728.A.630.html
ssccg: 可以用sizeof的話大小本來就是確定的吧,算一下不就知道 06/11 09:22
popcorny: 變成ByteArray不就有Lenght了嗎,然後先傳len再傳data 06/11 09:24
RouterHsieh: 樓上的前輩意思是說,Object的大小 06/11 11:02
RouterHsieh: 其實就是它轉成ByteArray後的size嗎@@ 06/11 11:02
Killercat: 其實你的問題是serialize/deserialize怎麼傳type 06/11 12:42
Killercat: 這很多方法可以做到,不過我不太確定你想要的是這個 06/11 12:42
Chikei: 轉個方向想,如果你用C要收不定長度的資料要怎麼收?一樣 06/11 15:22
Chikei: 下去搞就好了 06/11 15:23
ctrlbreak: 自訂protocol就可以了 06/11 19:54
Killercat: 其實很多現成的方法可以用 java自己的serialize 06/11 21:46
Killercat: 或者轉json 不過最常見的還是google的protocal buffer 06/11 21:46