写在前面:前一篇文字http://blog.csdn.net/linyanwen99/article/details/8274754已经把相关原理讲解了,这里就不再赘述,直接上源码
一.crossdomain.h头文件的声明,如下:
#ifndef CROSSDOMAIN_H
#define CROSSDOMAIN_H
#include <string>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
using namespace boost;
class CrossDomain{
private:
struct Server;
shared_ptr<Server> m_pserver;
CrossDomain(asio::io_service& io_service,const std::string& local_port);
static CrossDomain* s_instance;
public:
static void create(asio::io_service& io_service,const std::string& local_port){
s_instance = new CrossDomain(io_service,local_port);
}
static CrossDomain* instance();
void startServer();
};
#endif
转载请注明出处:山水间博客,http://blog.csdn.net/linyanwen99/article/details/8274812
二.crossdomain.cpp的实现,如下:
#include "crossdomain.h"
using boost::asio::ip::tcp;
using boost::uint8_t;
CrossDomain* CrossDomain::s_instance = NULL;
struct CrossDomainImpl:public boost::enable_shared_from_this<CrossDomainImpl>{
public:
static const unsigned MaxRe