c#(服务器)与java(客户端)通过socket传递对象_(客户端)通过Socket传递对象

(客户端)通过Socket传递对象

來源:互聯網  2016-05-20 10:10:54  評論

NetworkComms V3 使用Json序列化器进行网络通信刚才在网上闲逛,偶然看到一篇文章

C#(服务器)与java(客户端)通过Socket传递对象网址是:http://www.cnblogs.com/iyangyuan/archive/2012/12/23/2829712.html#3140522

其中提到了C#与java如通过传递对象通信的问题 摘引如下:

通信关键: C#和java用Socket通信,发送数据和接收数据可以统一采用UTF-8编码,经过测试,使用UTF-8编码可以成功传递对象。 对于Socket技术,发送数据之前,一般将字符串转换成字节数组,然后发送字节数组;接收数据时,收到的也是字节数组,很多时候需要转换成字符串后使用。 下边是一些常用的转换。 C#语言字符串转换成UTF-8字节数组: byte[] b = Encoding.UTF8.GetBytes("123"); C#语言UTF-8字节数组转换成字符串: // receiveData是字节数组,receiveN是字节数组length string removeMsg = Encoding.UTF8.GetString(receiveData, 0, receiveN); Java语言字符串转换成UTF-8字节数组: /* strContent 是要转换的字符串*/ byte[] bs = strContent.getBytes("UTF-8"); Java语言UTF-8字节数组转换成字符串: /* charArray 是UTF-8格式的字节数组,一般从IO流中获取的时候就指定为UTF-8,read_rst 是字节数组length*/ String resultStr = new String(charArray, 0, read_rst); 序列化关键: 大家都知道,对象是保存在内存中的,具体点说是内存中的堆区。因此当我们尝试保存、传递对象时,必须先把对象序列化,变成字符表示,把无形变成有形。 由于是跨语言的交互,我们即不能用Java特有的序列化方式,也不能用C#特有的序列化方式,必须找一个通用的序列化格式才能交互。显然,Json是不二的选择。 由此可知,我们需要Json完成以下功能: 经过测试,用如下方法可实现上述转换。 C#端可以用开源项目JSON.NET,下载后根据自己的.NET版本,选择相应的Newtonsoft.Json.dll,引用后再添加:using Newtonsoft.Json;using Newtonsoft.Json.Converters;即可使用。 C#用Json序列化对象方法: //te是要序列化的对象;obj是对象序列化后的字符串 string obj = JsonConvert.SerializeObject(te); C#用Json反序列化对象方法: //TestEntity是目标类型;obj是经过Json序列化的对象,字符串形式 TestEntity te = JsonConvert.DeserializeObject(obj);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值