亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

NetworkComms V3 使用Json序列化器進行網絡通信

2019-11-17 02:31:51
字體:
來源:轉載
供稿:網友

NetworkComms V3 使用Json序列化器進行網絡通信

剛才在網上閑逛,偶然看到一篇文章

C#(服務器)與java(客戶端)通過Socket傳遞對象

網址是:http://www.49028c.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<TestEntity>(obj);          Java端可以用開源項目google-gson,下載后是一個jar格式的包,直接在項目中導入這個包,并添加引用:import com.google.gson.Gson;即可使用。          Java用Json序列化對象方法:          Gson gson = new Gson();         /*te是需要序列化的對象*/         String s = gson.toJson(te);          Java用Json反序列化對象方法:          Gson gson = new Gson();         /*s是經過Json序列化的對象,字符串類型;TestEntity是目標類型*/         /*注意:使用fromJson方法反序列化一個對象時,該對象的類型必須顯示的聲明一個不帶參數的構造方法*/         TestEntity te = gson.fromJson(s,TestEntity.class);
摘引

想起來 NetworkComms V3中自帶了JSONSerializer 序列化器

NetworkComms V3中的JsonSerializer是對Newtonsoft.Json的包裝,使其更加方便的在networkComms V3框架中使用

先來做一個c#客戶端與c#服務器端通過json序列化方式通信的示例.

于是做了一個測試,新建工程文件如下:

MessageContract 中的 User類用于傳遞信息

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MessageContract{    public class User    {        public User()        { }        public string Name { get; set; }        public int Age { get; set; }            }}

ResMessag類,用于存儲返回的信息

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MessageContract{   public  class ResMessage    {       public ResMessage() { }       public string Message { get; set; }    }}

客戶端代碼:

 SendReceiveOptions sro = new SendReceiveOptions(DPSManager.GetDataSerializer<JSONSerializer>(), null, null);
 MessageContract.User theUser = new MessageContract.User();            theUser.Name = "名山大川網絡工作室 ";            theUser.Age = 30;            ResMessage resMsg = newTcpConnection.SendReceiveObject<User, ResMessage>("ReqUser", "ResUser", 5000, theUser, sro, sro);            MessageBox.Show("從服務器返回的信息是:"+resMsg.Message);

服務器端代碼:

 SendReceiveOptions sro = new SendReceiveOptions(DPSManager.GetDataSerializer<JSONSerializer>(), null, null);
  NetworkComms.AppendGlobalIncomingPacketHandler<User>("ReqUser", IncomingUserHandle);
   PRivate void IncomingUserHandle(PacketHeader header, Connection connection, User msg)        {            try            {                ResMessage resMessage = new ResMessage();                resMessage.Message = msg.Name + "歡迎您";                connection.SendObject("ResUser", resMessage, sro);            }            catch (Exception ex)            {                LogTools.LogException(ex, "IncomingMsgHandle");            }        }

示例運行成功,畫面如下:

Java好多年不用了,改天試試用java編寫個安卓的客戶端看看能不能與c#編寫的服務器通信,如果能這樣就太好了。

如果有寫的不對的地方,萬望您指出來,我好及時改正,不然有的網友又要說浪費他的時間了:)

www.networkComms.cn編輯

參考:

http://www.49028c.com/leonwang/archive/2011/08/12/2136497.html

http://www.49028c.com/wgp13x/p/0effafd9f5283cbf36e62b4fb5e94c81.html

http://www.49028c.com/zhanghaomars/p/3557644.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲国产伦综合| 97视频在线观看视频免费视频| 中文字幕日韩在线观看| 国产成人精品午夜| 欧美刺激性大交免费视频| 亚洲www在线观看| 国产精品欧美激情| 日韩av一区二区在线观看| 狠狠久久亚洲欧美专区| 国产主播喷水一区二区| 亚洲成人av资源网| 亚洲国产成人精品一区二区| 亚洲春色另类小说| 91在线无精精品一区二区| 亚洲一区二区三区四区视频| 九九精品视频在线观看| 国语自产在线不卡| 日本免费久久高清视频| 亚洲欧美国内爽妇网| 亚洲精品欧美日韩专区| 欧美日韩国产丝袜另类| 国产精品黄色影片导航在线观看| 久久久999国产精品| 国产成人精品免高潮在线观看| 在线亚洲国产精品网| 国产999精品久久久影片官网| 成人免费视频网| 亚洲成人黄色在线| 一本大道久久加勒比香蕉| 国产成人aa精品一区在线播放| 欧美激情免费观看| 亚洲精品第一国产综合精品| 岛国视频午夜一区免费在线观看| 亚洲国产精品久久久| 欧美俄罗斯乱妇| 91精品国产综合久久香蕉的用户体验| 狠狠躁夜夜躁人人爽天天天天97| 人人爽久久涩噜噜噜网站| 欧美视频在线观看 亚洲欧| 日本一区二区在线播放| 中文在线不卡视频| 亚洲精品国产福利| 亚洲欧美一区二区精品久久久| 亚洲另类xxxx| 精品日本美女福利在线观看| 97成人精品视频在线观看| 亚洲三级 欧美三级| 亚洲理论电影网| 久久人人看视频| 亚洲电影在线看| 久久精品国产亚洲精品| 一区二区欧美激情| 一区二区三区高清国产| 欧美在线一区二区视频| 日本一区二区三区四区视频| 亚洲精品国产精品国自产在线| 午夜精品久久久久久久久久久久| 欧美在线观看网址综合| 在线看片第一页欧美| 欧美一区二粉嫩精品国产一线天| 欧美亚洲免费电影| 欧美日韩另类在线| 青草青草久热精品视频在线观看| 亚洲免费电影一区| 国产精品久久77777| 国产欧美精品日韩| 亚洲人免费视频| 国产精品久久久久久久久久久久久久| 国产精品情侣自拍| 国产精品va在线播放| 国产日韩欧美自拍| 欧美放荡办公室videos4k| 欧美国产精品人人做人人爱| 亚洲欧美国产精品专区久久| 97久久超碰福利国产精品…| 91国产视频在线播放| 夜夜嗨av一区二区三区免费区| 亚洲精品国产精品乱码不99按摩| 国产精品白嫩美女在线观看| 久久久久久噜噜噜久久久精品| 日韩欧美有码在线| 亚洲女人被黑人巨大进入al| 国产精品美女午夜av| 中文日韩在线观看| 久久99国产综合精品女同| 亚洲香蕉av在线一区二区三区| 亚洲第一在线视频| 九九热精品视频在线播放| 欧美午夜精品久久久久久浪潮| 日韩av电影中文字幕| 国产精品日韩专区| 欧美日韩免费一区| 久久久久久久久久久成人| 一本一本久久a久久精品牛牛影视| 日本sm极度另类视频| 狠狠色狠狠色综合日日小说| 国产精品爽爽ⅴa在线观看| 久久99国产精品久久久久久久久| www.日韩系列| 国产亚洲免费的视频看| 中文字幕日韩在线观看| 亚洲精选一区二区| 国产69精品久久久久久| www.久久色.com| 亚洲一区二区久久| 国产欧美久久一区二区| 欧美国产日产韩国视频| 久精品免费视频| 久久精品2019中文字幕| 不卡毛片在线看| 欧美多人爱爱视频网站| 992tv成人免费视频| 51久久精品夜色国产麻豆| 亚洲国产精品99久久| 激情亚洲一区二区三区四区| 国产精品视频免费在线观看| 亚洲第一级黄色片| 亚洲人成网站777色婷婷| 日韩视频免费大全中文字幕| 亚洲精品成人久久久| 欧美性猛交xxxx免费看久久久| 日韩av影院在线观看| 欧洲亚洲妇女av| 亚洲摸下面视频| 国产精品亚洲网站| 精品久久久久久久大神国产| 国产日韩欧美电影在线观看| 亚洲男人天堂2023| 欧美日韩一区二区精品| 国产精品99久久99久久久二8| 57pao国产成人免费| 国产精品久久久久久久7电影| 一区二区亚洲精品国产| 91日本在线视频| 日韩欧美aaa| 91超碰中文字幕久久精品| 国色天香2019中文字幕在线观看| 国产日韩欧美另类| 在线观看欧美成人| 国产亚洲美女久久| 亚洲性夜色噜噜噜7777| 亚洲欧美日韩另类| 欧美午夜无遮挡| 亚洲最大激情中文字幕| 一本大道亚洲视频| 97在线视频免费观看| 伊人成人开心激情综合网| 国产欧美一区二区三区四区| 日韩av中文字幕在线| 亚洲欧美日韩另类| 亚洲一区二区三区视频播放| 欧美成人一区在线| 亚洲欧美激情另类校园| 2018国产精品视频| 国产精品视频导航| 成人伊人精品色xxxx视频| 三级精品视频久久久久| 97成人精品区在线播放| 日本在线观看天堂男亚洲| 久久久国产视频| 亚洲精品一区在线观看香蕉| 欧美性jizz18性欧美| 久久久久久久一区二区| 国产激情久久久|