项目需要,做了一个B/S分布式控制Client的程序。就是 管理员用B/S管理控制各个分布的
client,其中涉及C/S通信,但S是用apache搭建的啊,所以C/S得用http通信,
我用到了 comet。
现在有个 问题啊,Cliet都是 vc写的设计大量数据结构传递。。这些数据 我在 Server如何用 java解析呢
我在想 要么 只有改成 http 下的form参数,用字符替代,,但改动稍微有点大。
有没有不用改动太多的方式,就把之前通信数据 追加在http post请求的 body内。。http服务器 在直接 解析出
数据???
client,其中涉及C/S通信,但S是用apache搭建的啊,所以C/S得用http通信,
我用到了 comet。
现在有个 问题啊,Cliet都是 vc写的设计大量数据结构传递。。这些数据 我在 Server如何用 java解析呢
我在想 要么 只有改成 http 下的form参数,用字符替代,,但改动稍微有点大。
有没有不用改动太多的方式,就把之前通信数据 追加在http post请求的 body内。。http服务器 在直接 解析出
数据???
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数组信息
但 如果传的是 int,long,float这些东西组成的结构体。。那么在JAVA
端如何取出来?可不可提前 计算好 偏移量,然后 用类似new int(byte[],4)(不知道有没有这种构造方法)
的方法还原?
这样 的话,还不如 就直接 jna,jni了。。
如readInt(),readLong(),readFloat()等等,LZ可以自己看看java文档