当前位置: 首页 > news >正文

公司网站开发费用账务处理搜索量排名

公司网站开发费用账务处理,搜索量排名,供应链管理有限公司,做网站建设的文章内容: 学习ZMQ库中REQ\REP模式相关的内容 简介 应答模式:REQ(客户端)和REP(服务端) 典型的一问一答协议,即客户端需要首先发送hello,服务器则返回word,若客户端发…

文章内容:

  1. 学习ZMQ库中REQ\REP模式相关的内容
简介

应答模式:REQ(客户端)和REP(服务端)

  • 典型的一问一答协议,即客户端需要首先发送hello,服务器则返回word,若客户端发送hello,服务器没有应答,后续通讯将不成立。
  • 客户端首先对服务端发送了hello,那么客户端会等待服务端应答,若在此期间客户端再次向服务端发送消息,服务端是收不到的,客户端有一个消息队列,会放入消息队列,只有在 客户端收到服务端的回应之后才会去依次处理消息队列里的内容。
问题:

在使用网上的例子的时候出现了一种比较神奇的现象:
客户端和服务器的代码运行起来后没有按照一问一答的形式运行。后来发现是没有理解“一问一答”的含义。客户端和服务器必须一来一回的进行。如果客户端或者服务器没有发送或者没有接收消息则会卡死。

运行:

在这里插入图片描述

代码示例:

server:
h文件
#pragma once
#include <iostream>
#include "zmq.h"class Server
{
public:Server();~Server();void SendMsg();
private:void* m_context = nullptr;void* m_subscriber = nullptr;
};
cpp文件
#include "server.h"
#include <string>Server::Server()
{m_context = zmq_ctx_new();m_subscriber = zmq_socket(m_context, ZMQ_REP);int rc = zmq_bind(m_subscriber, "tcp://127.0.0.1:8080");if (rc != 0){printf("Socket binding failed\n");// return -1;}
}Server::~Server()
{}void Server::SendMsg()
{char buffer[256];memset(buffer, 0, sizeof(buffer) - 1);zmq_recv(m_subscriber, buffer, sizeof(buffer) - 1, 0); // 接收消息printf("Received message: %s\n", buffer);zmq_sleep(1);strcpy_s(buffer, "World");  // 准备回复消息zmq_send(m_subscriber, buffer, strlen(buffer), 0);  // 发送回复消息
}调用:
#include "server.h"int main()
{std::shared_ptr<Server> p_server = std::make_shared<Server>();if (p_server){while (1){p_server->SendMsg();}}return 0;
}
client:
调用:
#include "Clinet.h"
#include <iostream>int main()
{std::shared_ptr<Client> p_server = std::make_shared<Client>();if (p_server){while (1){p_server->SendMsg();}}return 0;
}cpp文件:
#include "Clinet.h"
#include <string>Client::Client()
{m_context = zmq_ctx_new();// 客户端m_subscriber = zmq_socket(m_context, ZMQ_REQ);// zmq_setsockopt(subscriber, ZMQ_SUBSCRIBE, "", 0);int rc = zmq_connect(m_subscriber, "tcp://127.0.0.1:8080");  // 连接到服务器端的地址和端口if (rc != 0){printf("connect error %s\n", zmq_strerror(errno));zmq_close(m_subscriber);zmq_ctx_destroy(m_context);}}Client::~Client()
{
}void Client::SendMsg()
{// std::cout << "sendMsg" << std::endl;int rc;// 3.循环发送数据、接收数据char str_tmp[] = "Hello, ZeroMQ!";char* msg = str_tmp;rc = zmq_send(m_subscriber, msg, strlen(msg), 0);  // 发送消息if (rc == -1){printf("send error: %s\n", zmq_strerror(errno));}char buffer[256];memset(buffer, 0, sizeof(buffer) - 1);zmq_recv(m_subscriber, buffer, sizeof(buffer) - 1, 0); // 接收消息printf("Received message: %s\n", buffer);}H文件:
#pragma once
#include "zmq.h"
class Client
{
public:Client();~Client();void SendMsg();
private:void* m_context = nullptr;void* m_subscriber = nullptr;
};
http://www.yidumall.com/news/73664.html

相关文章:

  • wordpress 高校官网引擎优化seo
  • 湖南英文网站建设网店运营基础知识
  • 可以下载的网站模板吗路由优化大师
  • 余姚企业网站建设营销课程培训都有哪些
  • 自己怎么注册一个网站如何优化网页
  • 外发加工网贴吧梧州网站seo
  • 公司查询网站查询系统中文搜索引擎网站
  • 网页设计表格seo什么意思简单来说
  • 网站域名到期叫百度一下你就知道首页官网
  • 做ic哪些网站好做seo推广公司哪家好
  • 网站开发过程有几个阶段域名ip查询查网址
  • 商业网站的建设流程全网推广平台有哪些
  • php网站后台密码破解工具网站后台用户名密码破解免费推广方法
  • 制作作品的软件seopeix
  • 电子商务网站建设网络营销有什么特点
  • 重庆装修设计公司排名湖南正规seo公司
  • 提升网站浏览量杭州seo顾问
  • 做3d建模贴图找哪个网站浙江网络推广公司
  • 做企业网站的公司网站排名软件优化
  • 假怀孕单子在线制作图片长沙谷歌优化
  • 国外企业查询网站网站域名查询地址
  • 做网站换服务器怎么整常见的网络推广方法
  • 漯河专业做网站公司百度指数下载
  • python 网站开发怎么部署seo推广系统排名榜
  • 徐州做网站最好的公司百度推广账号登陆入口
  • 花火视频影视大全免费观看百度推广优化技巧
  • iis做网站文件下载常用网站推广方法及资源
  • 滨湖网站制作搜索引擎推广一般包括哪些
  • 亳州做网站的公司郑州网站推广
  • 唐山做网站口碑好的seo文案范例