关于socket跨语言对象传输的问题。这问题一直找不到解决办法。希望各位高手给我指点一下

Advance 2013-03-23 01:01:34
这是我在学习socket的时候遇到的问题。

要实现的功能是在客户端把一个对象传到服务器。

客户端用c#做。服务器用java做。

要传输的对象只有两个属性:一个userName 跟一个password 都是String类型。
两端都这个User类。内容一样。


实践时的流程是这样的:我在c#那边把对象序列化为xml字符串后通过socket发送到java这边。

java这边接收到xml字符串后 赋值给一个String变量,然后把变量给xstream的fromXml方法进行反序列化。
就在进行反序列化的时候抛异常了。
异常的大概内容好像是说我的xml字符串内容不能转为对象。

重点:
后来我直接把java这边接收到的xml字符串用system.out.println()在控制台输出,
然后把在控制台输出的xml字符串手工复制到xstream的fromXml方法里再执行却成功了。


问题出在哪里了?


有人跟我说过 在接收端这边接收到xml字符串之后自己用dom4j解析xml字符串内容再自己封装到接收端这边
的对象里。不要直接用xstream的fromXml。

但是我发现c#和java两边把对象序列化为xml字符串后xml字符串的内容是一样的。
这样的话c#这边发送的xml字符串应该是可以给java那边的xstream的fromXml进行反序列化的,
没必要自己手动去解析和封装。但是就出现上面说的问题。。。 郁闷~~~~


还有 用socket进行跨语言的对象传输 , 大家一般用的是什么办法?

接收端需要手动解析封装的吗?
如果大家有这方面的资料也请分享一下。




...全文
164 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Advance 2013-03-24
  • 打赏
  • 举报
回复
很感谢楼上的回答,我现在是在做个简单例子。 后面的话是要需要传输复杂对象的。 如果使用webservice框架的话。那样还是不知道他的原理。 只是使用别人做好的东西。 我现在想弄清楚的是: 接收到一个标准的描述对象的xml之后,要如何处理它?我服务器用的语言是java, 所以前面我用的是xstream的fromXml方法来把xml转为对象。
zoeg 2013-03-23
  • 打赏
  • 举报
回复
这种问题没有通解,要根据具体的实际需求分析,因地制宜才好! 按照你说的可以考虑WebService,这个比较适合你; 你也可以使用xml作为中间数据表示层在网络上进行交换,两边各自进行orm映射,比如jaxb等! 如果你交换的数据就是这么简单,而且也没有通用性的设计要求,那就直接拼接成一个定长报文更简单,更高效!
Advance 2013-03-23
  • 打赏
  • 举报
回复
自己先顶一顶 。 希望有人可以帮我解答一下。

50,503

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧