Ejemplo n.º 1
0
void jni_init()
{
    try {
        net_thread = std::thread([] {
            if (!main_loop.init()) {
                return;
            }

            JNIEnv *env;
            bool attached = false;
            int status = java_vm->GetEnv((void **)&env, JNI_VERSION_1_4);
            if (status < 0) {
                LOGE("callback_handler: failed to get JNI environment, assuming native thread");
                status = java_vm->AttachCurrentThread(&env, NULL);
                if (status < 0) {
                    LOGE("callback_handler: failed to attach current thread");
                }
                attached = true;
            }

            main_loop.loop();

            if (attached) {
                java_vm->DetachCurrentThread();
            }
        });
    }
    catch (...) {

    }
}
Ejemplo n.º 2
0
int main()
{
    EventLoop loop;
    TcpServer server(&loop, InetAddress(1079), "Finger");
    server.setMessageCallback(onMessage);
    server.start();
    loop.loop();
}
Ejemplo n.º 3
0
int main()
{
	EventLoop loop;
	TestServer server(&loop, "testserver", "127.0.0.1", 5555);
	server.start();
	loop.loop();
	return 0;
}
Ejemplo n.º 4
0
int main(int argc, const char *argv[])
{
    redirections["/1"] = "http://chenshuo.com";
    redirections["/2"] = "http://blog.csdn.net/Solstice";

    int numThreads = 0;
    if(argc > 1){
        benchmark = true;
        Logger::setLogLevel(Logger::WARN);
        numThreads = atoi(argv[1]);
    }

#ifdef SO_REUSEPORT
    LOG_WARN << "SO_REUSEPORT";
    EventLoop loop;
    EventLoopThreadPool threadPool(&loop, "shorturl");
    if(numThreads > 1){
        threadPool.setThreadNum(numThreads);
    }else{
        numThreads = 1;
    }
    threadPool.start();

    boost::ptr_vector<HttpServer> servers;
    for (int i = 0; i < numThreads; i++) {
        servers.push_back(new HttpServer(threadPool.getNextLoop(),
                                         InetAddress(8000),
                                         "shorturl",
                                         TcpServer::kReusePort));
        servers.back().setHttpCallback(onRequest);
        servers.back().getLoop()->runInLoop(
                boost::bind(&HttpServer::start, &servers.back()));
    }
    loop.loop();
#else
    LOG_WARN << "Normal";
    EventLoop loop;
    HttpServer server(&loop, InetAddress(8000), "shorturl");
    server.setHttpCallback(onRequest);
    server.setThreadNum(numThreads);
    server.start();
    loop.loop();
#endif
    return 0;
}
Ejemplo n.º 5
0
int main()
{
    EventLoop loop;
    InetAddress proxyAddr("127.0.0.1", 6001);
    dbdky::cma_client::cma_client client(&loop, proxyAddr, "cma_client");
    client.setGetSendDataCallback(boost::bind(getTestData, _1));
    client.start();
    loop.loop();
}
Ejemplo n.º 6
0
void runServer(uint16_t port)
{
	EventLoop loop;
  TcpServer server(&loop, InetAddress(port), "ClockServer");
  server.setConnectionCallback(serverConnectionCallback);
  server.setMessageCallback(serverMessageCallback);
  server.start();
  loop.loop();
}
Ejemplo n.º 7
0
    void test()
    {
        printf("main(): pid = %d, tid = %d\n", getpid(), this_thread::get_id().value());
        EventLoop loop;
        Thread t(threadFunc);

        loop.loop();
        t.join();
    }
Ejemplo n.º 8
0
int main(int argc, char* argv[])
{
	Logger::setLogLevel(Logger::DEBUG);

	EventLoop loop;
	loop.runAfter(3.0, boost::bind(&EventLoop::quit, &loop));
	Thread thr(boost::bind(threadFunc, &loop));
	thr.start();
	loop.loop();
}
Ejemplo n.º 9
0
int main(int argc, char** argv)
{
	EventLoop loop;

	com_service server(&loop, "gcc");
	server.start();
	loop.loop();
	
	return 0;
}
Ejemplo n.º 10
0
void ZDQ::EventLoopThread::creadLoop()
{
    EventLoop loop;
    {
        MutexLockGuard g(mutex_);
        loop_ = &loop;
        cond_.notify();
    }
    loop.loop();//在新线程loop
    loop_ = NULL;
}
Ejemplo n.º 11
0
int main()
{
    LOG_INFO << "pid = " << getpid();
    EventLoop loop;
    InetAddress listenAddr("127.0.0.1", 6000);
    dbdky::cac_server::cac_server server(&loop, listenAddr, "cac_server");
    server.start();
    loop.loop();

    return 0;
}
Ejemplo n.º 12
0
void runClient(const char* ip, uint16_t port)
{
	EventLoop loop;
  TcpClient client(&loop, InetAddress(ip, port), "ClockClient");
  client.enableRetry();
  client.setConnectionCallback(clientConnectionCallback);
  client.setMessageCallback(clientMessageCallback);
  client.connect();
  loop.runEvery(0.2, sendMyTime);
  loop.loop();
}
Ejemplo n.º 13
0
int main(int argc, char* argv[])
{
	LOG_INFO << "pid = " << getpid();
	EventLoop loop;
	InetAddress listenAddr(2008);
	
	DaytimeServer server(&loop, listenAddr);
	server.start();
	loop.loop();
	
	return 0;
}
Ejemplo n.º 14
0
// 和客户端连接后丢弃所有数据
int main(int argc, const char *argv[])
{
    LOG_INFO << "pid = " << getpid();
    EventLoop loop;
    InetAddress listenAddr(8888);
    DiscardServer server(&loop, listenAddr);
    
    server.start();

    loop.loop();
    return 0;
}
Ejemplo n.º 15
0
int main()
{
	EventLoop baseLoop;
	InetAddress listenAddr("127.0.0.1", 8888);
	std::unique_ptr<TcpServer> tcpServer(new TcpServer(&baseLoop, listenAddr, "test"));
	tcpServer->setMessageCallback(std::move(onMessage));
	tcpServer->start();

	baseLoop.loop();

	return 0;
}
Ejemplo n.º 16
0
	void test_acceptor()
	{
		printf("main(): pid = %d, tid = %d\n", getpid(), this_thread::get_id().value());
		InetAddress listenAddr(8888);
		EventLoop loop;

		TcpAcceptor acceptor(&loop, listenAddr);
		acceptor.setNewConnectionCallback(newConnection);
		acceptor.listen();

		loop.loop();	
	}
Ejemplo n.º 17
0
int main()
{
	EventLoop baseLoop;
	
	baseLoop.runEvery(2, timeOut);
	baseLoop.runAfter(10, doAfter);
	

	baseLoop.loop();

	return 0;
}
Ejemplo n.º 18
0
int main(int argc, char* argv[])
{
	Logger::setLogLevel(Logger::TRACE);
	EventLoop loop;
	InetAddress serverAddr("127.0.0.1", 9981); // no such server
	TcpClient client(&loop, serverAddr, "TcpClient");
 	client.connect();

	client.setConnectionCallback(connectCallback);
	client.setMessageCallback(messageCallback);
	loop.loop();
}
Ejemplo n.º 19
0
int
main(int argc, char* argv[]) {
    google::ParseCommandLineFlags(&argc, &argv, true);
    google::InitGoogleLogging(argv[0]);
    google::InstallFailureSignalHandler();
    LOG(INFO) << "glog initialized";
    uint16_t port = static_cast<uint16_t>(FLAGS_port);
    EventLoop loop;
    zerus::pubsub::PubSubServer server(&loop, InetAddress(port));
    server.setThreadNum(8);
    server.start();
    loop.loop();
}
Ejemplo n.º 20
0
int main(int argc, char *argv[])
{
    Logger::setLogLevel(Logger::DEBUG);
    cout<<"IoServer"<<endl;
    EventLoop loop;
    InetAddress listenAddr(PORT);
    InetAddress broadcastAddr("127.0.0.1",7777);
    IoServer server(&loop,listenAddr,broadcastAddr);
    server.start();
    loop.loop();
    cout<<"Exit!"<<endl;
    getchar();
    return 0;
}
Ejemplo n.º 21
0
int main(int argc, const char *argv[])
{
    LOG_INFO << "pid = " << getpid();
    if(argc > 1){
        EventLoop loop;
        InetAddress serverAddr(argv[1], 8888);

        ChargenClient chargenClient(&loop, serverAddr);
        chargenClient.connect();
        loop.loop();
    }else{
        printf("Usage: %s host_ip\n", argv[0]);
    }
    return 0;
}
Ejemplo n.º 22
0
int main(int argc, const char *argv[])
{
    LOG_INFO << "pid = " << getpid() << ", tid = " << CurrentThread::tid();
    if(argc > 1){
        numThreads = atoi(argv[1]);
    }
    EventLoop loop;
    InetAddress listenAddr(8888);
    DiscardServer server(&loop, listenAddr);

    server.start();

    loop.loop();
    return 0;
}
Ejemplo n.º 23
0
int main(int argc, char* argv[])
{
  int numThreads = 0;
  if (argc > 1)
  {
    benchmark = false;
    numThreads = atoi(argv[1]);
  }

  EventLoop loop;
  HttpServer server(&loop, NetAddr("0.0.0.0", 54321), "dummy");
  server.setHttpCallback(onRequest);
  server.setThreadNum(numThreads);
  server.start();
  loop.loop();
}
int main(int argc, char* argv[])
{
  int numThreads = 0;
  if (argc > 1)
  {
    benchmark = true;
    Logger::setLogLevel(Logger::WARN);
    numThreads = atoi(argv[1]);
  }
  EventLoop loop;
  HttpServer server(&loop, InetAddress(12345), "dummy");
  server.setHttpCallback(onRequest);
  server.setThreadNum(numThreads);
  server.start();
  loop.loop();
}
Ejemplo n.º 25
0
// 一次性把文件读入内存
// 内存消耗不仅仅与并发连接数有关,还和文件大小有关
// 所以此程序的健壮性不够
int main(int argc, const char *argv[])
{
    LOG_INFO << "pid = " << getpid();
    if(argc > 1){
        g_file = argv[1];

        EventLoop loop;
        InetAddress listenAddr(8888);
        TcpServer server(&loop, listenAddr, "FileServer");
        server.setConnectionCallback(onConnection);
        server.start();
        loop.loop();
    }else{
        fprintf(stderr, "Usage: %s file_for_downloading\n", argv[0]);
    }
    return 0;
}
Ejemplo n.º 26
0
int main(int argc,char **argv)
{
  LOG_INFO << "pid = " << getpid();
  if(argc > 2)
  {
      EventLoop loop;
      InetAddress serverAddr(argv[1],static_cast<uint16_t>(atoi(argv[2])));
      ChatServer server(&loop,serverAddr);
      server.start();
      loop.loop();
  }
  else
  {
      printf("您输入的参数有误\n");
  }
  return 0;
}
Ejemplo n.º 27
0
void EventLoopThread::run()
{
  EventLoop loop;

  if (_callback)
  {
    _callback(&loop);
  }

  {
    ScopeMutex lock(&_mutex);
    _loop = &loop;
    _cond.signal();
  }

  loop.loop();
  //assert(exiting_);
  _loop = NULL;
}
Ejemplo n.º 28
0
int main(int argc, char* argv[])
{
    LOG_INFO << "pid = " << getpid() << ", tid = " << CurrentThread::tid();

    int numThreads = 0;

    if(argc > 1)
    {
        numThreads = atoi(argv[1]);
    }

    EventLoop loop;
    InetAddress listenAddr(2012);
    SudokuServer server(&loop, listenAddr, numThreads);
    server.start();
    loop.loop();

    return 0;
}
Ejemplo n.º 29
0
int main(int argc, char* argv[])
{
	LOG_INFO << "pid = " << getpid() << ", tid = " << CurrentThread::tid();

	uint16_t port = 9981;
	string ip = "127.0.0.1";
	int size = 10;

	if (argc==1)
	{
		printf("Usage: %s ip port [msg_size]\n", argv[0]);
		return -1;
	}
	else if (argc == 2)
	{
		port = atoi(argv[1]);

	}
	else if (argc==3)
	{
		ip = argv[1];
		port = atoi(argv[2]);

	}
	else if (argc >3)
	{
		ip = argv[1];
		port = atoi(argv[2]);

		size = atoi(argv[3]);
	}
	 
	EventLoop loop;

	InetAddress serverAddr(ip, port);


	EchoClient client(&loop, serverAddr, size);
	client.connect();
	loop.loop();
 
}
Ejemplo n.º 30
0
int main(int argc, char** argv)
{
    EventLoop loop;
    int fd = ::socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC,6);
    if (fd < 0)
    {
        LOG_INFO << "Fail to open test file";
        return -1;
    }
    dbdky::port::Channel chl(&loop, fd);
    chl.setWriteCallback(boost::bind(&defaultWriteEventCallback));
    chl.setCloseCallback(boost::bind(&defaultCloseEventCallback));
    //chl.setReadCallback(boost::bind(&defaultReadEventCallback)(_1));
   
    loop.updateChannel(&chl);

    loop.loop();
    
    return 0;    
}