场景:
    Client, Server都使用 Mina 1.0进行通信,直接 对象传输。问题:
    现在我只想把Client的Mina升级到2.0,但仍旧用对象传输。从测试结果看,似乎传输不成功。
1. 是否一定用同一Mina版本,都必须升级到2.0.
2.如果可以使用不同版本,我的Client是不是哪里配置错了呢?请各位出个主意。

解决方案 »

  1.   

    谢谢回复
    代码太多了,需要整一下。我没有自己写编码解码器,直接用Object传输。不知道是不是Mina1.0跟Mina2.0的Object编码解码方式变了。
      

  2.   

    mina2.0和1.0差别很大,例如:1.0要JDK1.4就可以,2.0必须要1.5以上,里面的实现改动也不小,如果程序不是一定要升级到2.0,跟据以往的经验,不推荐升级,除非对所有的功能进行测试。
      

  3.   

    我把Server端也升级成Mina2.0, 结果就通了。
    当然工程量浩大,就像楼上兄弟说的,API变了很多,有些1.0有的方法,2.0没有了。
    比如 IoAcceptor.isManaged(),这个就不见了。
      

  4.   

    Socket 通信是跨平台的,服务端与客户端没有任何关系。服务端可以是 C++ 写的,而客户端可以是 Java 写,或者其他语言的。
      

  5.   

    多谢关注,这个我理解。 但是通信的双方必须对数据格式有同样的理解 (就是所谓的协议)。
    我怀疑 Mina1.0跟Mina2.0的Object编码解码方式变了。 这是原因。
      

  6.   

    我觉得直接用对象传输虽然比较方便,但还是用byte数组进行传输比较好。
    这样可以做到平台无关性,就算你的客户端是C写的都没问题。
    按你现在的情况,如果想改动少一点,可以考虑先把Object序列化成byte数组,传输过去后再还原成Object