Skip to content

Commit 9586d3b

Browse files
committed
zmq.cpp
1 parent 7ee5153 commit 9586d3b

1 file changed

Lines changed: 56 additions & 2 deletions

File tree

section4/zmq.cpp

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,69 @@
11
// Copyright (c) 2020 by Chrono
22
//
3-
// g++ zmq.cpp -std=c++11 -lzmq -o a.out;./a.out
43
// g++ zmq.cpp -std=c++14 -lzmq -o a.out;./a.out
54

65
#include <iostream>
76

7+
#include <string>
8+
#include <vector>
9+
810
#include <zmq.hpp>
911

12+
using namespace std;
13+
14+
15+
void case1()
16+
{
17+
//using namespace std::literals::string_literals;
18+
19+
const auto thread_num = 1;
20+
const auto addr = "ipc:///dev/shm/zmq.sock"s;
21+
22+
zmq::context_t context(thread_num);
23+
24+
auto make_sock = [&](auto mode)
25+
{
26+
return zmq::socket_t(context, mode);
27+
};
28+
29+
//zmq::socket_t sock1(context, ZMQ_PUSH);
30+
auto sock1 = make_sock(ZMQ_PUSH);
31+
32+
sock1.connect(addr);
33+
34+
auto str = "hello zmq"s;
35+
36+
sock1.send(begin(str), end(str));
37+
38+
auto sock2 = make_sock(ZMQ_PULL);
39+
40+
sock2.bind(addr);
41+
42+
zmq::message_t msg;
43+
44+
sock2.recv(&msg);
45+
46+
cout << msg.size() << endl;
47+
48+
string s = {msg.data<char>(), msg.size()};
49+
cout << s << endl;
50+
}
51+
52+
void case2()
53+
{
54+
auto srv = [=]()
55+
{
56+
};
57+
58+
auto client = [=]()
59+
{
60+
};
61+
62+
}
63+
1064
int main()
1165
{
12-
using namespace std;
66+
case1();
1367

1468
cout << "zmq demo" << endl;
1569
}

0 commit comments

Comments
 (0)