C/C++大文件/数据网络传输方法总结(二)

2014-11-24 08:06:33 · 作者: · 浏览: 1
tion.createInputStream(destination)

详见: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等难度低,简单易用,在符合使用场景时是首选。(但一些自命不凡的程序员或许会对你嗤之以鼻,考虑之...)