博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ace(二)Demo示例
阅读量:4638 次
发布时间:2019-06-09

本文共 2614 字,大约阅读时间需要 8 分钟。

Client:

#include "ace/Log_Msg.h"#include "ace/OS.h"#include "ace/Service_Config.h"#include "ace/Event_Handler.h"#include "ace/Reactor.h"#include "ace/Svc_Handler.h"#include "ace/SOCK_Stream.h"#include "ace/Connector.h"#include "ace/SOCK_Connector.h"class CClientHandler : public ACE_Svc_Handler 
{private: char* data; static const int stDataSize = 64;public: CClientHandler() { data = new char[stDataSize]; } int open(void*) { ACE_DEBUG((LM_DEBUG,ACE_TEXT("client connection established.\n"))); ACE_Reactor::instance()->register_handler(this, ACE_Event_Handler::READ_MASK); char *message = "Client connected successfully in client.\n"; peer().send(message, strlen(message) + 1); return 0; } int handle_input(ACE_HANDLE) { peer().recv(data, stDataSize); ACE_DEBUG((LM_DEBUG, "data:%s\n", data)); return 0; }};int main(int argc, char* argv[]){ const int cPort = 12344; ACE_INET_Addr addr(cPort, "localhost"); ACE_Connector
connector; CClientHandler *handler = new CClientHandler(); if(connector.connect(handler, addr) == -1) { ACE_ERROR((LM_ERROR, "%P|%t, %s", "Connection failed.\n")); } ACE_Reactor::run_event_loop(); return 0;}

  Server:

#include "ace/Log_Msg.h"#include "ace/OS.h"#include "ace/Service_Config.h"#include "ace/Event_Handler.h"#include "ace/Reactor.h"#include "ace/Svc_Handler.h"#include "ace/SOCK_Stream.h"#include "ace/Acceptor.h"#include "ace/SOCK_Acceptor.h"class CServerHandler : public ACE_Svc_Handler
{private: char* data; static const int stDataSize = 64; public: CServerHandler() { data = new char[stDataSize]; } int open(void *) { ACE_DEBUG((LM_INFO, "%P|%t, %s", "Server Connection established.\n")); ACE_Reactor::instance()->register_handler(this, ACE_Event_Handler::READ_MASK); char *message = "Client connected successfully in server.\n"; peer().send(message, strlen(message) + 1); return 0; } int handle_input(ACE_HANDLE) { ssize_t recv_size = peer().recv(data, stDataSize); if (recv_size <= 0) { ACE_DEBUG((LM_WARNING, " No data received.\n")); } else { ACE_DEBUG((LM_DEBUG, "data:%s\n", data)); char *message = "Request is processed successfully!\n"; peer().send(message, strlen(message) + 1); } return 0; }};int main(int argc, char* argv[]){ ACE_DEBUG((LM_DEBUG,"Test server running...\n")); const int cPort = 12344; ACE_INET_Addr addr(cPort); ACE_Acceptor
acceptor; if (acceptor.open(addr) == -1) { ACE_DEBUG((LM_WARNING, "Accept error.\n")); } ACE_Reactor::run_event_loop(); return 0;}

  

转载于:https://www.cnblogs.com/binmaizhai/p/3962241.html

你可能感兴趣的文章
Maven的安装
查看>>
angular初步认识一
查看>>
springmvc3.2+spring+hibernate4全注解方式整合(一)
查看>>
Elgg网站迁移指南
查看>>
素数筛法优化
查看>>
installshield 注册dll
查看>>
Sublime Text 3 及Package Control 安装(附上一个3103可用的Key)
查看>>
LTE QCI分类 QoS
查看>>
Get MAC address using POSIX APIs
查看>>
bzoj2120
查看>>
基于uFUN开发板的心率计(一)DMA方式获取传感器数据
查看>>
【dp】船
查看>>
oracle, group by, having, where
查看>>
⑥python模块初识、pyc和PyCodeObject
查看>>
object-c中管理文件和目录:NSFileManager使用方法
查看>>
Kibana:分析及可视化日志文件
查看>>
nodejs pm2使用
查看>>
cocos2d-x 3.10 PageView BUG
查看>>
装饰器的基本使用:用户登录
查看>>
CSS选择器总结
查看>>