- 浏览: 209683 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zhuchao_ko:
有用的废话。。。
架构与产品 -
450029462:
java学好了 c++其实也不难,就是 宏多点 内存控制多点 ...
从java转向C\c++开发要学会些什么 -
ldlzagg:
...
启示2013 -
raojl:
书是买了, 一直没时间捣鼓!
我发现开始喜欢Python了 -
raojl:
回过头看了看也不全然对啊,呵呵!
IT行业发展‘VIA’模式探讨
#include "ace/Message_Queue.h"
#include "ace/Asynch_IO.h"
#include "ace/OS.h"
#include "ace/Proactor.h"
#include "ace/Asynch_Acceptor.h"
#include "ace/Addr.cpp"
#include "ace/Time_Value.cpp"
#include "ace/String_Base_Const.cpp"
#include "ace/OS_String.cpp"
#include "ace/Synch_Options.cpp"
//#include <mstcpip.h>
class HA_Proactive_Service : public ACE_Service_Handler
{
public:
~HA_Proactive_Service ()
{
if (this->handle () != ACE_INVALID_HANDLE)
ACE_OS::closesocket (this->handle ());
}
virtual void open (ACE_HANDLE h, ACE_Message_Block&)
{
this->handle (h);
if (this->reader_.open (*this) != 0 )
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
ACE_TEXT ("HA_Proactive_Service reader open")));
delete this;
return;
}
if (this->writer_.open (*this) != 0 )
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
ACE_TEXT ("HA_Proactive_Service write open")));
delete this;
return;
}
ACE_Message_Block *mb = new ACE_Message_Block(buffer,1024);
if (this->reader_.read (*mb, mb->space ()) != 0)
{
ACE_OS::printf("Begin read fail\n");
delete this;
return;
}
return;
}
//异步读完成后会调用此函数
virtual void handle_read_stream(const ACE_Asynch_Read_Stream::Result &result)
{
ACE_Message_Block &mb = result.message_block ();
if (!result.success () || result.bytes_transferred () == 0)
{
mb.release ();
delete this;
return;
}
mb.copy(""); //为字符串添加结束标记'\0'
ACE_OS::printf("rev:\t%s\n",mb.rd_ptr());
/* if(this->writer_.write(mb,mb.length()) !=0)
{
ACE_OS::printf("Begin read fail\n");
delete this;
return;
}*/
mb.release();
//实现一个WEB helloword程序~
ACE_Message_Block *bb = new ACE_Message_Block(1000);
bb->copy("HTTP/1.1 200 OK\r\n \
Date: Tue, 03 Mar 2009 09:27:26 GMT\r\n \
Server: BWS/1.0\r\n \
Content-Length: 50\r\n \
Content-Type: text/html\r\n \
Cache-Control: privateExpires: Tue, 03 Mar 2009 09:27:26 GMT\r\n \
Content-Encoding: text\r\n\r\n-hello world-<br> saving people ,saving the word");
if(this->writer_.write(*bb,bb->length()) !=0)
{
ACE_OS::printf("Begin read fail\n");
delete this;
return;
}
ACE_Message_Block *nmb = new ACE_Message_Block(buffer,1024);
if (this->reader_.read (*nmb, nmb->space ()) != 0)
return;
}
virtual void handle_write_stream(const ACE_Asynch_Write_Stream::Result &result)
{
ACE_Message_Block &mb = result.message_block ();
ACE_OS::printf("mb.release{ %s\n",mb.base());
mb.release();
return;
}
private:
ACE_Asynch_Read_Stream reader_;
ACE_Asynch_Write_Stream writer_;
char buffer[1024];
};
int main(int argc, char *argv[])
{
int port=3000;
ACE_Asynch_Acceptor<HA_Proactive_Service> acceptor;
if (acceptor.open (ACE_INET_Addr (port)) == -1)
return -1;
while(true)
ACE_Proactor::instance ()->handle_events ();
return 0;
}
#include "ace/Asynch_IO.h"
#include "ace/OS.h"
#include "ace/Proactor.h"
#include "ace/Asynch_Acceptor.h"
#include "ace/Addr.cpp"
#include "ace/Time_Value.cpp"
#include "ace/String_Base_Const.cpp"
#include "ace/OS_String.cpp"
#include "ace/Synch_Options.cpp"
//#include <mstcpip.h>
class HA_Proactive_Service : public ACE_Service_Handler
{
public:
~HA_Proactive_Service ()
{
if (this->handle () != ACE_INVALID_HANDLE)
ACE_OS::closesocket (this->handle ());
}
virtual void open (ACE_HANDLE h, ACE_Message_Block&)
{
this->handle (h);
if (this->reader_.open (*this) != 0 )
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
ACE_TEXT ("HA_Proactive_Service reader open")));
delete this;
return;
}
if (this->writer_.open (*this) != 0 )
{
ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"),
ACE_TEXT ("HA_Proactive_Service write open")));
delete this;
return;
}
ACE_Message_Block *mb = new ACE_Message_Block(buffer,1024);
if (this->reader_.read (*mb, mb->space ()) != 0)
{
ACE_OS::printf("Begin read fail\n");
delete this;
return;
}
return;
}
//异步读完成后会调用此函数
virtual void handle_read_stream(const ACE_Asynch_Read_Stream::Result &result)
{
ACE_Message_Block &mb = result.message_block ();
if (!result.success () || result.bytes_transferred () == 0)
{
mb.release ();
delete this;
return;
}
mb.copy(""); //为字符串添加结束标记'\0'
ACE_OS::printf("rev:\t%s\n",mb.rd_ptr());
/* if(this->writer_.write(mb,mb.length()) !=0)
{
ACE_OS::printf("Begin read fail\n");
delete this;
return;
}*/
mb.release();
//实现一个WEB helloword程序~
ACE_Message_Block *bb = new ACE_Message_Block(1000);
bb->copy("HTTP/1.1 200 OK\r\n \
Date: Tue, 03 Mar 2009 09:27:26 GMT\r\n \
Server: BWS/1.0\r\n \
Content-Length: 50\r\n \
Content-Type: text/html\r\n \
Cache-Control: privateExpires: Tue, 03 Mar 2009 09:27:26 GMT\r\n \
Content-Encoding: text\r\n\r\n-hello world-<br> saving people ,saving the word");
if(this->writer_.write(*bb,bb->length()) !=0)
{
ACE_OS::printf("Begin read fail\n");
delete this;
return;
}
ACE_Message_Block *nmb = new ACE_Message_Block(buffer,1024);
if (this->reader_.read (*nmb, nmb->space ()) != 0)
return;
}
virtual void handle_write_stream(const ACE_Asynch_Write_Stream::Result &result)
{
ACE_Message_Block &mb = result.message_block ();
ACE_OS::printf("mb.release{ %s\n",mb.base());
mb.release();
return;
}
private:
ACE_Asynch_Read_Stream reader_;
ACE_Asynch_Write_Stream writer_;
char buffer[1024];
};
int main(int argc, char *argv[])
{
int port=3000;
ACE_Asynch_Acceptor<HA_Proactive_Service> acceptor;
if (acceptor.open (ACE_INET_Addr (port)) == -1)
return -1;
while(true)
ACE_Proactor::instance ()->handle_events ();
return 0;
}
发表评论
-
服务端口快扫shell
2014-08-25 11:50 694#set -x var_start=8000 arra ... -
远程批量部署
2014-07-29 11:50 601#!/usr/bin/expect -- if ... -
linux 下建立异步链接
2014-05-07 11:59 546int32_t SockEndPoint::connect_ ... -
atomic笔记
2013-12-11 11:43 366inline void ice_atomic_set(ic ... -
求最大公共子串
2013-07-15 11:21 698#include <stdio.h> #inc ... -
日志记录
2013-01-14 09:25 718[root@localhost Capserver]# ... -
c开发笔记
2012-02-03 09:36 6771、就是有大量的输入参数或输出参数需要一次性交换时,可以考虑定 ... -
编译校验【代码笔记】
2011-06-17 09:07 5751、版本编译控制(比如多项目) 2、编译校验 3、s ... -
GCC注意笔记
2011-02-22 18:38 706大多数程序和库在编译 ... -
邻接表实现状态图【大家帮忙看看问题】
2010-06-26 18:15 885StatusGrap.cpp // StatusGraph ... -
gsoap编写webservice应用
2010-06-01 15:02 2129The gSOAP tools minimize applic ... -
setsockopt 笔记
2010-04-22 15:12 7871、TCP_NODELAY是唯一使用IPPROTO_TCP层的 ... -
随录-增量记录
2010-02-25 10:41 649程序开发,对于日志的记录需要主要以下几个问题。 1、多线程或 ... -
快速入门sqlite内存数据库,用sqlite构建一日志工具
2009-12-25 11:28 3699今天上午无意在搜索的时候发现很多应用程序用了sqllite,o ... -
dos脚本+ftp实现快速升级
2009-12-25 09:52 1460cd \ ;写ftpget.src文件,存储ftp命令。该文件 ... -
花三分钟看看这个文档
2009-11-30 19:14 771linux 命令精简 Unix/Linux Command ... -
推荐一款xml分析微型库tinyxml
2009-08-22 08:16 1279tinyxml,至所以叫tin,就是短小精悍。搭配前面讲的gs ... -
用gsoap编写webservice客户端接口dll的方法案例
2009-08-22 07:55 28941)使用手册:见http://gsoap2.source ... -
命令随写
2009-08-13 16:22 716ocrale启动监听:lsnrctl start 启动服务:o ... -
LUA 分析文件
2009-06-02 14:07 1109BUFSIZE = 2^13 -- 8K ...
相关推荐
helloword
你好字 HelloWord程序HelloWord程序
在这个“工作流HelloWord程序”中,我们将会探讨微软的工作流框架——Windows Workflow Foundation (WWF),它是.NET Framework的一部分,提供了构建工作流应用程序的强大工具。 微软的Windows Workflow Foundation ...
在本示例中,我们将探讨如何创建一个MyBatis的HelloWorld程序,从而熟悉其基本概念和工作流程。 首先,我们需要理解MyBatis的核心组成部分:SqlSessionFactory、SqlSession和Mapper接口。SqlSessionFactory是...
【标题】"Tomcat6 + HelloWorld程序"是一个基础的Java Web应用示例,它结合了Apache Tomcat6服务器和一个简单的“Hello, World!”应用程序。这个组合通常用于教学目的,帮助初学者理解如何在Tomcat服务器上部署和...
在这个"第一个Android程序 HelloWord"中,我们将深入探讨Android应用程序的基础构建块。 1. **Android Studio**:Android应用程序开发的主要集成开发环境(IDE)是Android Studio,它基于IntelliJ IDEA。安装...
3. **创建组件**:学习如何创建一个简单的组件,例如一个包含"Hello, World!"文本的标签或按钮。 4. **布局管理**:理解EXTJS4.0的布局系统,如fit布局、border布局等,以及如何在容器中添加和排列组件。 5. **...
本人写的第一个PHP程序,哈哈,很简单的一个Helloword
标题 "HelloWord" 可能是指一个初学者入门编程时经常遇到的第一个程序。在许多编程语言中,"Hello, World!" 是一个简单的示例,用于演示如何在控制台打印出一条消息。这个程序通常用于介绍基本的编程概念,如变量、...
这个程序虽然被描述为“非常简单,一个HelloWord程序而已”,但其实它涉及到许多Android开发的关键知识点。在这个压缩包文件中,我们可以推测包含的源代码和资源文件可能是实现这一功能的基础。 1. **Android SDK和...
java 入门 几乎是所有学习java的编写的第一个java程序
在本文中,我们将探讨如何通过一个简单的"HelloWord"程序来了解并使用Gef。 首先,让我们明确一下Gef的核心特性。Gef提供了一套丰富的自定义命令,用于简化调试过程,包括但不限于:内存检查、反汇编、堆栈浏览、...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域中被广泛使用。"HelloWorld"是学习任何新技术时的入门示例,Struts2也不例外。这个例子通常帮助开发者了解如何在...
这个"我的第一个Delphi 7程序"是一个非常适合初学者的起点,帮助他们了解如何使用Delphi 7来创建简单的应用程序。 首先,让我们来了解一下Delphi 7的核心特性: 1. **Object Pascal 语言**: Delphi 7 使用的是...
本压缩包“microchip程序实例HELLOWORD.zip”是针对Microchip微控制器的一个简单示例程序,名为“HELLOWORD”,它通常用于初学者入门或者教学,帮助开发者熟悉Microchip的开发环境和编程流程。 Microchip的微控制...
下面是一个简单的Go程序的示例: ```go package main import "fmt" func main() { fmt.Println("Hello, World!") } ``` 上面的代码是一个最基本的Go程序。它包括一个`main`包,其中定义了一个`main`函数。`fmt`...
EJB3.0是EJB规范的一个重要版本,它引入了许多改进,使得EJB更加轻量级,易于使用,并减少了XML配置的需求。在EJB3.0中,开发人员可以利用注解(Annotations)来简化对象的声明,使其更加直观。 在EJB3.0的第一个...
入门用的。聪明的不用下载。
在HelloWord.zip文件中,我们可以看到"HelloWord"这个项目,这是一个经典的“Hello, World!”程序,是每个编程语言初学者的第一个例子,用于展示如何在控制台输出文本。 在Swift中,创建一个简单的"Hello, World!...
"程序是一个经典的起点,对于初学者来说,它是了解编程环境和语言特性的第一步。本篇文章将详细讲解如何在iPhone上开发第一个"Hello, World!"程序,帮助你快速入门iOS应用开发。 首先,我们需要安装Xcode。Xcode是...