cpp-memserver.cpp

来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· C++ 代码 · 共 71 行

CPP
71
字号
// $Id: CPP-memserver.cpp 63209 2005-01-10 10:28:08Z jwillemsen $// This example tests the features of the <ACE_MEM_Acceptor>,// <ACE_MEM_Stream>, and <ACE_Svc_Handler> classes.  If the platform// supports threads it uses a thread-per-connection concurrency model.// Otherwise, it uses a single-threaded iterative server model.#include "ace/MEM_Acceptor.h"#include "ace/Thread_Manager.h"#include "ace/Handle_Set.h"#include "ace/Profile_Timer.h"ACE_RCSID(SOCK_SAP, CPP_inserver, "$Id: CPP-memserver.cpp 63209 2005-01-10 10:28:08Z jwillemsen $")static intrun_event_loop (u_short port){  // Create the acceptors.  ACE_MEM_Acceptor acceptor;  ACE_MEM_Addr server_addr (port);  // Create acceptors, reuse the address.  if (acceptor.open (server_addr, 1) == -1)    ACE_ERROR_RETURN ((LM_ERROR,                       "%p\n",                       "open"),                      1);  else if (acceptor.get_local_addr (server_addr) == -1)    ACE_ERROR_RETURN ((LM_ERROR,                       "%p\n",                       "get_local_addr"),                      1);  ACE_DEBUG ((LM_DEBUG,              "(%P|%t) starting server at port %d\n",              server_addr.get_port_number ()));  // Keep these objects out here to prevent excessive constructor  // calls within the loop.  ACE_MEM_Stream new_stream;  // blocking wait on accept.  if (acceptor.accept (new_stream) == -1)    ACE_ERROR_RETURN ((LM_ERROR,                       "%p\n",                       "accept"),                      -1);  char buf[MAXPATHLEN];  int len = 0;  while ((len = new_stream.recv (buf, MAXPATHLEN)) != -1)    {      ACE_DEBUG ((LM_DEBUG, "%s\n", buf));      new_stream.send (buf, len);    }  return new_stream.fini ();}intACE_TMAIN (int argc, ACE_TCHAR *argv[]){  u_short port = ACE_DEFAULT_SERVER_PORT;  if (argc > 1)    port = ACE_OS::atoi (argv[1]);  return run_event_loop (port);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?