范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

StreamJsonRpc使用TCP数据流通讯

  StreamJsonRpc  是微软维护的开源 JSON-RPC  的 .NET  库使用非常方便,常用的操作方式是服务器端通过 JsonRpc  的 Attach  静态函数与一个本地类实例实现对外接口,客户端通过 Attach  方法附加到一个 Stream  ,然后调用 Invoke  或 InvokeAsync  函数实现函数的基本操作,详细介绍可参阅https://www.cnblogs.com/willick/p/13233704.html 精致码农  相关文章。 服务器端
  此代码在 精致码农  示例基础上进行修改,通过示例可以看到使用 .NET  的 Tcp  模式建立服务器也是很方便的,因为 JsonRpc  的 Attach  函数的形参为 Stream  对象,只需要在收到客户端连接后获取客户端对象的 Stream  传入函数即可。 using StreamJsonRpc; using System; using System.IO.Pipes; using System.Net.Sockets; using System.Threading.Tasks;  namespace StreamSample.Server {     class Program     {         static async Task Main(string[] args)         {             int clientId = 1;              TcpListener listener = new TcpListener(System.Net.IPAddress.Any, 6600);             listener.Start();              while (true)             {                 Console.WriteLine("等待客户端连接...");                 TcpClient client = await listener.AcceptTcpClientAsync();                 NetworkStream stream = client.GetStream();                 Console.WriteLine(#34;已与客户端 #{clientId} 建立连接");                  _ = TcpResponseAsync(stream, clientId);                  clientId++;             }         }          static async Task TcpResponseAsync(NetworkStream stream, int clientId)         {             var jsonRpc = JsonRpc.Attach(stream, new GreeterServer());             await jsonRpc.Completion;             Console.WriteLine(#34;客户端 #{clientId} 的已断开连接");             jsonRpc.Dispose();             await stream.DisposeAsync();         }          static async Task ResponseAsync(NamedPipeServerStream stream, int clientId)         {             var jsonRpc = JsonRpc.Attach(stream, new GreeterServer());             await jsonRpc.Completion;             Console.WriteLine(#34;客户端 #{clientId} 的已断开连接");             jsonRpc.Dispose();             await stream.DisposeAsync();         }     }      public class GreeterServer     {         public string SayHello(string name)         {             Console.WriteLine(#34;收到【{name}】的问好,并回复了他");             return #34;您好,{name}!";         }     } }客户端
  与服务器端相似,我们在连接到服务器后获取 TcpClient  对象的 Stream  传入 Attach  函数即可,具体代码如下: using StreamJsonRpc; using System; using System.IO.Pipes; using System.Net; using System.Net.Sockets; using System.Threading.Tasks;  namespace StreamSample.Client {     class Program     {         static string GetMachineNameFromIPAddress(string ipAddress)         {             string machineName = null;             try             {                 IPHostEntry hostEntry = Dns.GetHostEntry(ipAddress);                 machineName = hostEntry.HostName;             }             catch (Exception ex)             {                 System.Console.WriteLine(ex.Message);             }             return machineName;         }          static string GetIPAddressFromMachineName(string machineName)         {             string ipAdress = string.Empty;             try             {                 IPAddress[] ipAddresses = Dns.GetHostAddresses(machineName);                  IPAddress ip = ipAddresses[1];                  ipAdress = ip.ToString();             }             catch (Exception ex)             {                 System.Console.WriteLine(ex.Message);             }             return ipAdress;         }          static async Task Main(string[] args)         {             TcpClient tcpClient = new TcpClient("192.168.31.67", 6600);             var stream = tcpClient.GetStream();              Console.WriteLine("正在连接服务器...");             Console.WriteLine("已建立连接!");              Console.WriteLine("我是精致码农,开始向服务端问好...");             var jsonRpc = JsonRpc.Attach(stream);             var message = await jsonRpc.InvokeAsync("SayHello", "精致码农");             Console.WriteLine(#34;来自服务端的响应:{message}");              Console.ReadKey();         }     } } 程序运行效果
  服务器端
  客户端

曹操出行完成超10亿元融资?!爱企查显示此前曾获2轮融资据知情人士透露,曹操出行已完成数十亿元新一轮融资。其相关负责人表示不予置评。如此消息属实,该笔融资或成为2021年网约车行业首笔国内股权融资。据爱企查App显示,曹操出行运营主体杭华为移动路由天际通版,明日开售了华为昨日预热的专属新拍档今日正式揭晓华为移动路由天际通版,新品将于9月1日在华为商城开售,售价349元。华为移动路由同时支持移动网络和有线网络,兼具SIM卡插卡上网和有线宽带接入两晚点独家丨小鹏汽车取消大小周,何小鹏在快速奔跑中寻找平衡晚点LatePost独家获悉,小鹏汽车今天下午2点多发布通知称取消大小周,同时将工作日的上班时间向前延长了半小时,即由原本的早10晚7改为早9晚6点半,午休1。5小时不变,每日工作为什么当我们人类想到宇宙,空间,纬度,死亡等事,仿佛有什么阻止我们容易的想下去?这种情况也不是所有人都有,但产生过这种感觉的人,都对生命和时空有过深入思考。先说空间,其实也就是三维空间了,这其实也是一个哲学问题,高维度可以俯察低维度,但是低维度无法观测高维度。第一次发射卫星,第一次人类进入太空和第一次登月,对于人类来说哪个意义更重大?人类踏上月球的第一个脚印既然是个科学问题,那就从科学角度上来谈,从科学意义和价值上来谈。三句话三个历史性事件,咱们先来简单介绍一下具体情况。1,1957年10月4日前苏联于在拜科努关于鸿蒙,很多人说是道德绑架,你们都错了先分析一下说这话的网友们错在哪里,全世界卖手机的除了三星其他都是中国品牌,在华为海思和鸿蒙出来以前,我们都是用的美国芯片和系统,那时候大家都各卖各的,相安无事,有没有想过美国就在等华为一夜传来三大消息鸿蒙系统机型伙伴确认游戏业务再升级尽管手机业务处处受阻,但是华为依旧是互联网上热度最高的手机品牌,华为所到之处,便是花粉的集中地,各种讨论可谓此起彼伏,好不热闹。而今天一觉醒来,华为再次传来三大消息,其中和鸿蒙系统俄媒文章中国品牌立足本土走向世界俄罗斯自由媒体网5月27日发表题为为何俄罗斯不能像中国人那样只选择国货?的文章称,俄罗斯厂商需要向中国人学习,从电子到服装,中国商品几乎正在所有领域大举占领全球市场。全文摘编如下近魅族18系列降价提振销量,粉丝改用鸿蒙系统销量肯定好魅族宣布,5月31日发布Watchme智能手表,同时还将带来魅族智享生活生态链产品。日前,魅族旗下一款型号为UP2021电源适配器获得3C入网认证,外界怀疑31号发布会还将带来一款618选手机不迷糊,理性选择适合你的性价比机型又要到一年一度的618了,每到年中的时候会不会发现你手上的手机莫名其妙的就越来越不好用了呢?没有关系或许这真是你入手新手机的好时候,那么面对众多品牌的众多机型是不是挑花了眼了呢?没数字人民币能替代微信支付宝吗?用起来感觉超爽一直以来,大家都习惯于使用微信和支付宝买东西,做交易,可是,有很少人知道数字人民币,今天小编就简单给大家普及一下关于数字人民币的小常现在我们可以这样去理解数字人民币,就是有人民银行
咕咚智能专业跑鞋性价比之王跑步作为一种性价比高的运动,不仅可以锻炼全身肌肉,减少脂肪塑形。每次跑步的过程中,都拥有一种汗流浃背的乐趣。虽然每个人都跑过步,但跑鞋却不被很多人重视,甚至有些人穿上一双帆布鞋就开如何为佳明手表设置跑步训练计划如何在佳明手表中设定训练计划或者设置心率区间,以便训练时可以自动分段执行或自动提醒实际心率是否在设定的心率区间内?比如设定训练计划轻松跑10公里心率区间2快速跑20秒6组心率区间5跑步训练方法之白色启动计划适用人群初跑者,或以前跑过步最近没有跑但想重新开始的人。代码含义W表示步行,E代表轻松跑,L代表轻松速度稳定的长距离跑。跨步跑(ST)是轻量的20秒快速跑(并非冲刺跑),两次跨步跑一梦江湖助你摆脱社恐!社交牛X症上身,生活不要太快乐现实社会中,不少人都会有社交恐惧症,但是最近有一位玩家直言在玩了一梦江湖后,让一个社恐直接变成了社交牛逼症。这说出去,或多或少,都能让人产生疑惑真的有那么神奇吗?骗人的吧?但是事实游戏王决斗链接纯黑魔导卡组快乐加倍,这就是版本新活吗?看过游戏王动画的小伙伴们肯定都知道,武藤游戏的王牌正是他忠诚的仆人黑魔术师(黑魔导)!这一非常经典的怪兽也因为极高的人气而极度得到了极大程度上的增强。时至今日依旧有不少黑魔术师的信联发科天玑系列SoCAI表现备受好评高能效AI成手机终端最强Buff全面的人工智能(AI)技术正在成为各品牌手机打造差异化的关键,这也对手机厂商提出了更高的要求,同时也给芯片厂商带来新的挑战。联发科在近日展示了一系列的天玑旗舰技术,其中高能效AI颇天玑开放架构成旗舰机差异化优选,联发科与多家手机厂商全球合作今年夏天,联发科推出了天玑5G开放架构,助力终端厂商打造具备差异化体验的高端5G手机,并宣布终端产品将在下半年陆续上市,消息一出获得了行业高度关注。到了2021年最后一季度,我们回如何判断手中的客户是不是意向客户?在获得客户资源的时候,我们开始要做的就是看看这个客户是不是你的意向客户,接着再进行归类与开发。如果你不进行这一系列的程序,就开始盲目给客户发邮件与开发,这样遍地撒网,时间一长,就不外贸中让客户成交,这些你要掌握(一)在外贸中,怎么样让客户与你成交,心理语言思想要掌握什么技巧。这一系列,我们将会分为两个部分来讲,小伙伴们想要成单,那就跟随我们的脚步来看看吧!1心态有多重要?一个老外贸员跟我说,心如何通过软件来获取B2B目标客户群体我们都知道社交APP在B2B市场营销领域是一个非常关键的存在,现在小编就以多年的经验来告诉你们,如何利用社交APP去精准捕捉客户。要知道你的用户是谁随着科学技术的大力发展,现在在媒客户没理你,你是不是做了这些?做贸易的时候,做了很多努力,但客户就是不理你,你是不是经历过这样的场景,话不多说,马上来看!1专业是你的必备技能,客户才会信任你。答对当地市场完全不知情,参数不知道,付款方式搞错。