socket服务器和客户端传输的数据格式。请知道大概相关的都来帮忙一下,我搞得头都大了。

Advance 2013-04-07 03:38:35
服务器用java做的。客户端用c#做。用tcp协议

我用的传输办法是:将需要传输的对象序列化为xml字符串传输到另一端后反序列化。

java用XStream来序列化对象,c#用的是XmlSerializer。

不过发现这两个东西序列化对象不是按同一标准来序列化的。

例如:java: Object o=new String("aa");
把o序列化后结果是 <string>aa</string>

而 c#: Object o=new String("aa");
把o序列化后结果是 <anyType xsi:type="xsd:string">aa</anyType>

这样就不能直接把接收到的xml字符串进行反序列化了。

或者说 大家有其他 关于跨语言对象传输的办法吗。请分享一下。




...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2013-04-08
  • 打赏
  • 举报
回复
Java很多序列化工具可以设置自己的格式,不用默认的就可以了。 看看API说明。
Advance 2013-04-08
  • 打赏
  • 举报
回复
嗯。多谢几位的回答。 我之前也有这样想过的,但是我之前一直认为像这样的序列化应该会有一个统一的标准,而且每种语言都会有按照这统一标准进行序列化的工具。 还是按照你们说的来做吧。 这样的话要先自己写个序列化的工具才行。 多谢啦 。
想喝咖啡的貓 2013-04-07
  • 打赏
  • 举报
回复
c/s端都用同一个xml 都能解和生成 就OK了,无非是定义个格式的事。
  • 打赏
  • 举报
回复
自定定一套序列化对象的规则,两边按自己的规则序列。将对象打包成xml形式
STEEL-CHINA 2013-04-07
  • 打赏
  • 举报
回复
socket通信协议,最好定义一套通用的数据传输方式。不要搞一些平台特有的或业务相关性强的协议。

51,410

社区成员

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

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