我在用NIO的SocketChannel的时候碰到一个问题,
就是当Server端接受一个Client之后,
理论上我要attach一块ByteBuffer给该channel。
问题是我从Client那边传过来的其实是一个自订的Object,
(那是一个自订的Class,先转成ByteArray后在转成ByteBuffer)
所以我在Server这边不知道该allocate多大的sizs囧
以前我在写C的时候,只要使用sizeof就可以搞定了,
可是在Java上面似乎没有这个功能,可以请问一下各位前辈该怎么办吗0rz
作者:
ssccg (23)
2015-06-11 09:22:00可以用sizeof的话大小本来就是确定的吧,算一下不就知道
作者:
popcorny (毕业了..@@")
2015-06-11 09:24:00变成ByteArray不就有Lenght了吗,然后先传len再传data
楼上的前辈意思是说,Object的大小其实就是它转成ByteArray后的size吗@@
其实你的问题是serialize/deserialize怎么传type这很多方法可以做到,不过我不太确定你想要的是这个
作者:
Chikei ( )
2015-06-11 15:22:00转个方向想,如果你用C要收不定长度的资料要怎么收?一样下去搞就好了
作者: ctrlbreak 2015-06-11 19:54:00
自订protocol就可以了
其实很多现成的方法可以用 java自己的serialize或者转json 不过最常见的还是google的protocal buffer