NetMQ使用——请求响应模式 Request-Reply

摘要:
官方网站:https://netmq.readthedocs.io/en/latest/receiving-sending/建议:https://www.cnblogs.com/Jack-Blog/p/6774902.html首先发送的服务器端使用(NetMQSocketclientSocket=newRequestSocket()){Randomrd=newRandom();intnum=rd

官网:https://netmq.readthedocs.io/en/latest/receiving-sending/

推荐:https://www.cnblogs.com/Jack-Blog/p/6774902.html

先发送的服务器端

using (NetMQSocket clientSocket = newRequestSocket())
{
Random rd = newRandom();
int num = rd.Next(0, 100);
clientSocket.Connect("tcp://127.0.0.1:5555");
while (true)
{
Console.WriteLine(num + ",Please enter your message:");
string message =Console.ReadLine();
clientSocket.SendFrame(num + ":" +message);

string answer =clientSocket.ReceiveFrameString();

Console.WriteLine("Answer from server:{0}", answer);

if (message == "exit")
{
break;
}
}
}

接收方,并返回接收结果

using (NetMQSocket serverSocket = newResponseSocket())
{
serverSocket.Bind("tcp://127.0.0.1:5555");
while (true)
{
string message1 =serverSocket.ReceiveFrameString();

Console.WriteLine("Receive message :
{0}
", message1);

string[] msg = message1.Split(':');
string message = msg[1];


#region 根据接收到的消息,返回不同的信息
if (message == "Hello")
{
serverSocket.SendFrame("World");
}
else if (message == "ni hao ")
{
serverSocket.SendFrame("你好!");
}
else if (message == "hi")
{
serverSocket.SendFrame("HI");
}
else{
serverSocket.SendFrame(message);
}
#endregion

if (message == "exit")
{
break;
}
}
}

上述的绑定方法是一一对应的,不能同时开启多个客户端,若想绑定多个客户端,则要改变绑定的方式

using (NetMQSocket clientSocket = new RequestSocket("@tcp://127.0.0.1:5555"))

using (NetMQSocket serverSocket = new ResponseSocket(">tcp://127.0.0.1:5555"))

免责声明:文章转载自《NetMQ使用——请求响应模式 Request-Reply》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇jenkins未授权访问/弱口令漏洞ubuntu修改hostname下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

TortoiseGit安装、配置(Git 小乌龟安装)

然后关闭5ToroiseGit。以克隆验证中心项目为例,验证TortoiseGit配置是否正确。注意:在克隆代码之前,请确保您具有相关的项目代码权限。如果您没有权限,请具有主权限的同事帮助您分配登录gitlab的权限,在本地目标下载目录中获取SSH链接地址,右键单击--˃TortoiseGit--˃克隆,然后将SSH链接地址粘贴到URL,单击“确定”确认项目...

cocosCreator中Protobuf的简单使用

CocosCreatorwebStorm或VSCode安装node.js下载protobufjs6.8.6步骤:...

Python之路

Python之路引子与其感慨路难行,不如马上出发PythonPython之路(一):初识Python之路(二):基本数据类型(上)Python之路(三):基本数据类型(下)Python之路(四):函数介绍及使用Python之路(五):内置函数Python之路(六):迭代器,装饰器,生成器Python之路(七):字符串处理Python之路(八):基础模块(一)...

(转)JavaScript-性能优化之函数节流(throttle)与函数去抖(debounce)

简单来说,JavaScript性能优化的函数节流和函数去抖动功能节流就是使函数在极短的时间间隔内无法连续调用。下一个函数调用只能在上次函数执行超过指定的时间间隔后进行。对于这两个需求,有两种解决方案:去抖动和节流。Throwle和debouck是解决请求和响应速度不匹配问题的两种解决方案。抛出以相等的间隔执行函数。如果事件在反跳时间间隔t内再次触发,则将再次...

ArchLinux安装英伟达显卡驱动

Optimus manager qt Install novausudopacman-Sxf86-video novau右键单击导航栏上的Intel图标,选择列表中的设置功能,单击左侧的Optimus,然后在右侧窗口中选择nouveau作为切换方法。右键单击导航栏上的Intel图标以选择要使用的图形卡类型。在我选择Nvidia显卡后,您需要注销并再次登录才能...

Swift开发中 JSON对象/JSON字符串/Data的互转

本文将介绍常见的转换#pragmark JSON(object)------˃JSON string 1,原生方法//JSON------˃data------˃JSON string letdata=try?JSON序列化。data#pragmark数据------˃JSON(对象)1.本机方法guardletarray=try?[[String:AnyO...