Chinaunix首页 | 论坛 | 博客
  • 博客访问: 596697
  • 博文数量: 109
  • 博客积分: 1463
  • 博客等级: 上尉
  • 技术积分: 859
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-22 13:21
个人简介

希望和广大热爱技术的童鞋一起交流,成长。

文章分类

全部博文(109)

文章存档

2017年(1)

2016年(2)

2015年(18)

2014年(1)

2013年(9)

2012年(15)

2011年(63)

分类: LINUX

2011-08-14 15:26:54

1.

  posix版(linux下载这个):

  win版:

2.安装

  tar -zxvf zeromq-2.1.7.tar.gz

  cd zeromq-2.1.7

  ls

  ./configure

ps:configure会报个错,貌似是缺少什么库,按提示安装上即可。

  make

  make install

3.测试程序:

测试客户端代码://zeromqclient.c

 

  1. #include <zmq.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <unistd.h>

  5. int main ()
  6. {
  7.  void *context = zmq_init (1); // Socket to talk to server
  8.  printf ("Connecting to hello world server...\n");
  9.  void *requester = zmq_socket (context, ZMQ_REQ);
  10.  zmq_connect (requester, "tcp://localhost:5555");
  11.  int request_nbr;
  12.  for (request_nbr = 0; request_nbr != 10; request_nbr++)
  13.  {
  14.   zmq_msg_t request;
  15.   zmq_msg_init_data (&request, "Hello", 6, NULL, NULL);
  16.   printf ("Sending request %d...\n", request_nbr);
  17.   zmq_send (requester, &request, 0);
  18.   zmq_msg_close (&request);
  19.   zmq_msg_t reply;
  20.   zmq_msg_init (&reply);
  21.   zmq_recv (requester, &reply, 0);
  22.   printf ("Received reply %d: [%s]\n", request_nbr, (char *) zmq_msg_data (&reply));
  23.   zmq_msg_close (&reply);
  24.  }
  25.  zmq_close (requester);
  26.  zmq_term (context);
  27.  return 0;
  28. }

 

客户端编译:

# gcc zeromqclient.c -o client -lzmq -L/data/zeromq/lib -I/data/zeromq/include

报错:

error while loading shared libraries: libzmq.so.0: cannot open shared object file: No such file or directory

解决方法:

执行:sudo /sbin/ldconfig,因为ldconfig为动态链接库管理命令,一般在系统启动时运行,当安装了新的动态连接库后,需要手动执行此命令。

测试服务器代码://zeromqserver.c

 

  1. #include <zmq.hpp>
  2. #include <unistd.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. int main ()
  6. {
  7.  // Prepare our context and socket
  8.  zmq::context_t context (1);
  9.  zmq::socket_t socket (context, ZMQ_REP);
  10.  socket.bind ("tcp://*:5555");
  11.  while (true)
  12.  {
  13.   zmq::message_t request; // Wait for next request from client
  14.   socket.recv (&request);
  15.   printf ("Received request: [%s]\n", (char *) request.data ()); // Do some 'work'
  16.   sleep (1); // Send reply back to client
  17.   zmq::message_t reply (6);
  18.   memcpy ((void *) reply.data (), "World", 6);
  19.   socket.send (reply);
  20.  }
  21.  return 0;
  22. }

 

服务器编译:

#g++ zeromqserver.c -o server -lzmq -L/data/zeromq/lib -I/data/zeromq/include

ps:如果用gcc就会报错一大堆,但是g++却不会。本人也不知道原因。

运行:

服务器先运行:#./server

客户端运行:#./client "i am xiaocui"

--------------------------------------------------------------------------------------

python:

1. 安装python开发环境。
sudo apt-get install python-dev

2. 安装easy_install工具,该工具主要是方便python的一些第三方库或包的安装.
sudo apt-get install python_setuptools

3. 安装zeromq的python绑定。
sudo easy_install pyzmq

4. 至此,可以开始使用python编写基于zeromq的网络程序了。enjoy it.


 

阅读(2977) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~