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

  • 相关阅读:
    nginx 启动相关的
    爬取豆瓣读书/文件存储数据/数据库存储数据
    python Web 开发三剑客比较
    scrapy
    爬虫自动登录抽屉
    组合搜索
    html瀑布流
    Ajax上传文件/文件预览
    Form组件
    django分页
  • 原文地址:https://www.cnblogs.com/iapp/p/3631832.html
Copyright © 2011-2022 走看看