zoukankan      html  css  js  c++  java
  • ACE第二个练习:简单的Web服务

    #include "ace/SOCK_Acceptor.h"
    #include "ace/SOCK_Stream.h"
    #include "ace/Mem_Map.h"
    #include "ace/Auto_Ptr.h"
    
    extern char* get_url_pathname(ACE_SOCK_Stream* peer){
    	return "test.txt";
    }
    
    int ACE_TMAIN(int argc, ACE_TCHAR* argv[]) {
    
    	ACE_INET_Addr		server_addr;
    	ACE_SOCK_Acceptor	acceptor;
    	ACE_SOCK_Stream		peer;
    
    	if (server_addr.set(80) == -1) return 1;
    	if (acceptor.open(server_addr) == -1) return 1;
    
    	while (1)
    	{
    		if (acceptor.accept(peer) != -1) {
    
    			peer.disable(ACE_NONBLOCK);		// 确保阻塞的send_n
    			//ACE_Auto_Array_Ptr<char> pathname(get_url_pathname(&peer));			// ACE_Auto_Array_Ptr<X> 对象在析构时会释放其构造时的对应指针的内存
    			ACE_Mem_Map mapped_file(get_url_pathname(&peer)/*pathname.get()*/);
    
    			if (peer.send_n(mapped_file.addr(), mapped_file.size()) == -1) return 1;
    				peer.close();
    
    		}
    	}
    	
    	return acceptor.close() ==  -1 ? 1 : 0;
    }


    在工作目录添加"test.txt"文件,内容为:Hello World!

    编译运行,在浏览器中输入http://127.0.0.1:80

  • 相关阅读:
    1.Apache与Tomcat
    jeeplus 多选框
    GIT 回滚
    jsp 中data 转换 字符串
    Pattern和Matcher中表达式
    web.xml 详细介绍
    $.ajax()方法详解
    My 2016
    如何做好一个保安队长。
    集合之WeakHashMap
  • 原文地址:https://www.cnblogs.com/iapp/p/3631832.html
Copyright © 2011-2022 走看看