创建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.

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

被折叠的 条评论
为什么被折叠?



