详见:http://activemq.apache.org/jms-streams.html
2.2 ZeroMQ 接口
ZeroMQ没有直接提供传送文件的接口。但ZeroMQ中send(void * data, size_t len)接口已经做好了封装,可以send任意大小的数据。代码如下:
zmq::context_t ctx(1);
zmq::socket_t sock(ctx, ZMQ_REQ);
sock.connect(tcp://192.168.20.111:20310);
sock.send(pData,len);//数据大小没有限制,可以直接发送任意大小的数据
char reply[100];
sock.recv (reply,100);
sock.disconnect(addr);
接收端代码如下:
m_context = new zmq::context_t(1);
m_socket = new zmq::socket_t (*m_context, ZMQ_REP);
m_socket->bind (tcp://*:20310);
zmq::message_t request;
// Wait for next request from client
m_socket->recv (&request) // request可以接受发送来的任意大小的数据
m_socket->send(ok,2);
是不是很简单呢?
3.基于共享文件、ftp、scp等
这就不细说了。要么就是写共享目录,要么就是调用系统命令。
4.总结
1)直接基于socket编程难度较高,所以不推荐。
2)使用现有的库方便,但需要学习。一般推荐。
3)共享文件、ftp、scp等难度低,简单易用,在符合使用场景时是首选。(但一些自命不凡的程序员或许会对你嗤之以鼻,考虑之...)