nanomsg 高性能通信库_NanoMsg框架|C#中Nanomsg的PAIR和BUS使用

本文介绍了如何在C#环境中使用NNanoMsg库实现NanoMsg的PAIR和BUS模式。PAIR模式实现了一对一的双向通信,而BUS模式则允许多个套接字之间的消息广播。在DEMO中展示了服务器端和客户端的代码实现,通过 Lazy 模式进行资源管理。在PAIR模式下,服务端和客户端可以互相发送和接收消息;而在BUS模式下,一个套接字发送的消息会被其他所有套接字重复接收。文章还提到了BUS模式可能的重复接收问题及其应用场景的局限性。

创建NanoMsg程序
要实现NanoMsg通讯,我们需要用到两个程序,一个服务端,一个客户端,所以我们用VS新建一个项目,创建了两个窗体应用程序分别起名为nanomsgserver和nanomsgclient 。
在这里插入图片描述
界面中我们加入了选择的协议类型的comobox组件,然后加了三个button和一个TextBox的显示,在客户端多加入一个TextBox可以输入我们要发送的文字,如下图:
在这里插入图片描述

在这里插入图片描述

NuGet中添加NNanoMsg
在NuGet中我们加入NNanoMsg的组件,分别在Server端和Client端都增加上
在这里插入图片描述

我的这个在已安装中,我们重新安装在浏览中输入Nanomsg中可以看到NNanoMsg,下载0.5.2版本即可。
在这里插入图片描述

安装完后在引用中会出来nnanomsg的组件,并且会多了两个文件夹x86和x64,分别的Window和Linux系统中32位和64位的nanomsg的动态库。
在这里插入图片描述

经过上面的步骤,NanoMsg就已经安装完成了。接下来我们就看看PAIR的模式和BUS模式。

PAIR协议
PAIR就是简单的一对一模式,也就是端对端双向通信模式。所以在通讯中如果要接收,它可以不会超时,一直在等待。

先说一下,这里面我用了Lazy的模式定义的,关于Lazy这里简单说一下,.NET 4.0中加入了lazy(懒对象),其实叫懒对象感觉不对,更应该叫延迟对象加载。正如我们所知。对象的加载是需要消耗时间的,特别是对于大对象来说消耗的时间更多.lazy可以实现对象的延迟加载。

Server端代码:

  /// <summary>
        /// Pair连接
        /// </summary>
        private void PairSocketSrvConnect()
        {
   
   
            try
            {
   
   
                pairSocket = new Lazy<PairSocket>(() => new PairSocket());
                pairSocket.Value.Bind("tcp://*:8001");

                new Task(() =>
                {
   
   
                    while (pairSocket.IsValueCreated)
                    {
   
   
                        Thread.Sleep(1000);
                        //接收数据
                        byte[] buffer = pairSocket.Value.Receive();
                        string recvstr = Encoding.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值