论坛首页 Java企业应用论坛

Mina框架传递对象

浏览 18451 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-03-09  
esanone 写道
楼主用对象的方式传送,那在decode的时候,如何解决网络的粘包与拆包问题?

从代码来看,根本就没有解决粘包的问题。
0 请登录后投票
   发表时间:2011-03-09  
传对象太大了吧?而且还需要制定的协议来进行转换,要封装ENCODER 和 DECODER

不然不会知道你传过来的东西是啥的,而且传递的对象在接收方还要存在····
0 请登录后投票
   发表时间:2011-03-09  
zhxing 写道
不知道对象序列化的性能怎样。个人愚见是对象序列化能省掉大部分的解码代码,但是这也限制了客户端必须也是java。。序列化后的大小估计也比较大,当作通讯协议好像有点吃力。。

对于mina的性能,好像不错。。

事实上这个玩意性能还可以,不是提吃力。麻烦在于限制死了只能java通信。
0 请登录后投票
   发表时间:2011-03-09  
有什么办法可以得到一个对象的大小(字节数),而不序列化这个对象?
0 请登录后投票
   发表时间:2011-03-09  
jiefei_download 写道
有什么办法可以得到一个对象的大小(字节数),而不序列化这个对象?

对于每个数据包,我们必须知道其大小,这往可以在双方的协议里解决(包头),所以方案确实不知道要什么入手。
0 请登录后投票
   发表时间:2011-03-09  
这么说的话客户端必须也是java才行
还有客户端和服务端公有的类提取出来成为一个基础项目,其他项目依赖它就可以了
发布的时候打个包一起发布
你这样子在server项目和client项目都有UserInfo类,万一要改那不是两边都要动
0 请登录后投票
   发表时间:2011-03-09  
客户端用C++也是可以的。
0 请登录后投票
   发表时间:2011-03-09  
对于博友的回复,我说明一下哈
1、基于上述实现的话客户端就必须是java开发的了,呵呵,或许是局限了些,java和其他语言相比有不足,但有的地方也有很多优势,我的程序实例只是提供一种策略,您可以利用这个策略去开发java比较擅长的客户端软件,至于java不擅长的您进行权衡决定是否采用这一个策略,那就要看开发者的选择喽
2、15楼“你这样子在server项目和client项目都有UserInfo类,万一要改那不是两边都要动”的确这样一来两边都要修改,如果通过原始的那种InputStream,OutputStream,Writer,Reader进行信息解析的话,如果需要功能更新,同样是要进行解析更新的,4楼的“把你公共的文件,比如你上面的UserInfo类,编译打包成一个jar文件,分别引入到客户端和服务端程序中,这样如果你公共文件有变化,可以省去你要修改客户端和服务端”建议不错,可是这还是要修改客户端和服务器的,因为我示例中只有一个userinfo类,如果增加了功能有了个bloginfo类,还是要修改服务器和客户端的(instanceof的类对象判断解析部分的修改是必须的),不知您们有没有其他的更好的当增加新功能时而不用修改解析方式的方法,提出来参考一下
3、通过测试,Mina的性能还是很不错的
4、关于网络的粘包与拆包问题,我还不太清楚,望大家多多指点
0 请登录后投票
   发表时间:2011-03-09  
esanone 写道
jiefei_download 写道
有什么办法可以得到一个对象的大小(字节数),而不序列化这个对象?

对于每个数据包,我们必须知道其大小,这往可以在双方的协议里解决(包头),所以方案确实不知道要什么入手。

说了等于没说。
0 请登录后投票
   发表时间:2011-03-09  
没有接触过了,不知道是用来做什么的.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics