zoukankan      html  css  js  c++  java
  • ACE 第一个练习:Web Client,解决了400 Bad Request问题,但不知为什么要这么做

    #include "ace/INET_Addr.h"
    #include "ace/SOCK_Connector.h"
    #include "ace/SOCK_Stream.h"
    #include "ace/Log_Msg.h"
    
    int ACE_TMAIN (int argc, ACE_TCHAR *argv[]){
    
    	const char *pathname=argc>1 ? argv[1]:"index.html";
    	const char *servername=argc>2 ? argv[2]:"ace.ece.uci.edu";
    	ACE_SOCK_Connector connector;
    	ACE_SOCK_Stream peer;
    	ACE_INET_Addr peer_addr;
    
    	if(peer_addr.set(80,servername)==-1)
    		return -1;
    	else
    		if(connector.connect(peer,peer_addr)==-1)
    			return -1;
    
    	char buf[BUFSIZ] = {0};
    	iovec iov[3];
    	iov[0].iov_base	= "GET ";
    	iov[0].iov_len	= strlen("GET ") + 1;				// 比实际大小多一个字节,不然会有400 Bad Request问题,不知道为什么
    	iov[1].iov_base	= (char*)pathname;
    	iov[1].iov_len	= strlen(pathname);
    	iov[2].iov_base	= "HTTP/1.0\r\n\r\n";  
    	iov[2].iov_len	= 13;
    
    	if(peer.sendv(iov, 3) == -1)
    		return -1;
    	for(ssize_t n; (n = peer.recv(buf, sizeof buf)) > 0; )
    		ACE::write_n(ACE_STDOUT ,buf ,n);
    	system("pause");
    	return peer.close() == -1 ? 1 : 0;
    }

  • 相关阅读:
    North North West
    HDU-5387 Clock
    HDU-1036 Average is not Fast Enough!
    Growling Gears
    HDU-5375 Gray code
    HDU-5373 The shortest problem
    hdu-5364 Distribution money
    UVA
    HDU-5363 Key Set
    HDU-5326 Work
  • 原文地址:https://www.cnblogs.com/iapp/p/3631833.html
Copyright © 2011-2022 走看看