项目需要,做了一个B/S分布式控制Client的程序。就是 管理员用B/S管理控制各个分布的
client,其中涉及C/S通信,但S是用apache搭建的啊,所以C/S得用http通信,
我用到了 comet。
现在有个 问题啊,Cliet都是 vc写的设计大量数据结构传递。。这些数据 我在 Server如何用 java解析呢
我在想 要么 只有改成 http 下的form参数,用字符替代,,但改动稍微有点大。
有没有不用改动太多的方式,就把之前通信数据 追加在http post请求的 body内。。http服务器 在直接 解析出
数据???

解决方案 »

  1.   

    http://leidiqiu.iteye.com/blog/715897才疏学浅,不懂的vc,实在解决不了楼主的问题,帮楼主搜了篇文章,楼主看看吧……
      

  2.   

    试试看
    C端用个byte[]数组保存结构体信息
    int size = sizeof(your_struct);
    byte[] b = new byte[sizeof(int)+size];
    memcpy(&b, &size, sizeof(int));
    memcpy(&b[sizeof(int)], &your_struct, sizeof(your_struct)); //保存结构体信息和结构体长度
    然后把byte数组信息保存到body发送java端用字节流的方式读取,首先获得结构体长度,然后再获取byte数组信息,然后解析byte数组信息
      

  3.   

    直接传 byte应该可以。。
    但 如果传的是 int,long,float这些东西组成的结构体。。那么在JAVA
    端如何取出来?可不可提前 计算好 偏移量,然后 用类似new int(byte[],4)(不知道有没有这种构造方法)
    的方法还原?
    这样 的话,还不如 就直接 jna,jni了。。
      

  4.   

    客户端的数据结构你是知道的把  那么就定个协议 Java读字节流 应该没有问题吧。。?
      

  5.   

    用DataInputStream的对应方法
    如readInt(),readLong(),readFloat()等等,LZ可以自己看看java文档
      

  6.   

    哦。。明白了。。看来Java没学透啊
      

  7.   

    为什么我用JNA调本地的C++ DLL可以成功,别人调的时候却是找不到这个类库,不懂啊,求解释