亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? binhttpurlinputstream.cpp

?? IBM的解析xml的工具Xerces的源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
                delete tmpMutex;            }         }         XMLMutexLock lock(fInitMutex);         if (!fInitialized)         {             Initialize(urlSource.getMemoryManager());         }    }    fMemoryManager = urlSource.getMemoryManager();    //    // Pull all of the parts of the URL out of th urlSource object, and transcode them    //   and transcode them back to ASCII.    //    const XMLCh*        hostName = urlSource.getHost();    char*               hostNameAsCharStar = XMLString::transcode(hostName, urlSource.getMemoryManager());    ArrayJanitor<char>  janBuf1(hostNameAsCharStar, urlSource.getMemoryManager());    const XMLCh*        path = urlSource.getPath();    char*               pathAsCharStar = XMLString::transcode(path, urlSource.getMemoryManager());    ArrayJanitor<char>  janBuf2(pathAsCharStar, urlSource.getMemoryManager());    const XMLCh*        fragment = urlSource.getFragment();    char*               fragmentAsCharStar = 0;    if (fragment)        fragmentAsCharStar = XMLString::transcode(fragment, urlSource.getMemoryManager());    ArrayJanitor<char>  janBuf3(fragmentAsCharStar, urlSource.getMemoryManager());    const XMLCh*        query = urlSource.getQuery();    char*               queryAsCharStar = 0;    if (query)        queryAsCharStar = XMLString::transcode(query, urlSource.getMemoryManager());    ArrayJanitor<char>  janBuf4(queryAsCharStar, urlSource.getMemoryManager());		    unsigned short      portNumber = (unsigned short) urlSource.getPortNum();    //    // Set up a socket.    //    struct hostent*     hostEntPtr = 0;    struct sockaddr_in  sa;    if ((hostEntPtr = gethostbyname(hostNameAsCharStar)) == NULL)    {        unsigned long  numAddress = inet_addr(hostNameAsCharStar);        if (numAddress == INADDR_NONE)        {            // Call WSAGetLastError() to get the error number.            ThrowXMLwithMemMgr1(NetAccessorException,                     XMLExcepts::NetAcc_TargetResolution, hostName, fMemoryManager);        }        if ((hostEntPtr =                gethostbyaddr((const char *) &numAddress,                              sizeof(unsigned long), AF_INET)) == NULL)        {            // Call WSAGetLastError() to get the error number.            ThrowXMLwithMemMgr1(NetAccessorException,                     XMLExcepts::NetAcc_TargetResolution, hostName, fMemoryManager);        }    }    memcpy((void *) &sa.sin_addr,           (const void *) hostEntPtr->h_addr, hostEntPtr->h_length);    sa.sin_family = hostEntPtr->h_addrtype;    sa.sin_port = htons(portNumber);    SOCKET s = socket(hostEntPtr->h_addrtype, SOCK_STREAM, 0);    if (s == INVALID_SOCKET)    {        // Call WSAGetLastError() to get the error number.        ThrowXMLwithMemMgr1(NetAccessorException,                 XMLExcepts::NetAcc_CreateSocket, urlSource.getURLText(), fMemoryManager);    }    if (connect(s, (struct sockaddr *) &sa, sizeof(sa)) == SOCKET_ERROR)    {        // Call WSAGetLastError() to get the error number.        ThrowXMLwithMemMgr1(NetAccessorException,                 XMLExcepts::NetAcc_ConnSocket, urlSource.getURLText(), fMemoryManager);    }    // Set a flag so we know that the headers have not been read yet.    bool fHeaderRead = false;    // The port is open and ready to go.    // Build up the http GET command to send to the server.    // To do:  We should really support http 1.1.  This implementation    //         is weak.    memset(fBuffer, 0, sizeof(fBuffer));    if(httpInfo==0)        strcpy(fBuffer, "GET ");    else {        switch(httpInfo->fHTTPMethod) {        case XMLNetHTTPInfo::GET:   strcpy(fBuffer, "GET "); break;        case XMLNetHTTPInfo::PUT:   strcpy(fBuffer, "PUT "); break;        case XMLNetHTTPInfo::POST:  strcpy(fBuffer, "POST "); break;        }    }    strcat(fBuffer, pathAsCharStar);    if (queryAsCharStar != 0)    {        // Tack on a ? before the fragment        strcat(fBuffer,"?");        strcat(fBuffer, queryAsCharStar);    }    if (fragmentAsCharStar != 0)    {        strcat(fBuffer, fragmentAsCharStar);    }    strcat(fBuffer, " HTTP/1.0\r\n");    strcat(fBuffer, "Host: ");    strcat(fBuffer, hostNameAsCharStar);    if (portNumber != 80)    {        strcat(fBuffer, ":");        int i = strlen(fBuffer);        _itoa(portNumber, fBuffer+i, 10);    }    strcat(fBuffer, "\r\n");    if(httpInfo!=0 && httpInfo->fHeaders!=0)        strncat(fBuffer,httpInfo->fHeaders,httpInfo->fHeadersLen);    strcat(fBuffer, "\r\n");    // Send the http request    int lent = strlen(fBuffer);    int  aLent = 0;    if ((aLent = send(s, fBuffer, lent, 0)) != lent)    {        // Call WSAGetLastError() to get the error number.        ThrowXMLwithMemMgr1(NetAccessorException,                 XMLExcepts::NetAcc_WriteSocket, urlSource.getURLText(), fMemoryManager);    }    if(httpInfo!=0 && httpInfo->fPayload!=0) {        int  aLent = 0;        if ((aLent = send(s, httpInfo->fPayload, httpInfo->fPayloadLen, 0)) != httpInfo->fPayloadLen)        {            // Call WSAGetLastError() to get the error number.            ThrowXMLwithMemMgr1(NetAccessorException,                     XMLExcepts::NetAcc_WriteSocket, urlSource.getURLText(), fMemoryManager);        }    }    //    // get the response, check the http header for errors from the server.    //    memset(fBuffer, 0, sizeof(fBuffer));    aLent = recv(s, fBuffer, sizeof(fBuffer)-1, 0);    if (aLent == SOCKET_ERROR || aLent == 0)    {        // Call WSAGetLastError() to get the error number.        ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::NetAcc_ReadSocket, urlSource.getURLText(), fMemoryManager);    }    fBufferEnd = fBuffer+aLent;    *fBufferEnd = 0;    do {        // Find the break between the returned http header and any data.        //  (Delimited by a blank line)        // Hang on to any data for use by the first read from this BinHTTPURLInputStream.        //        fBufferPos = strstr(fBuffer, "\r\n\r\n");        if (fBufferPos != 0)        {            fBufferPos += 4;            *(fBufferPos-2) = 0;            fHeaderRead = true;        }        else        {            fBufferPos = strstr(fBuffer, "\n\n");            if (fBufferPos != 0)            {                fBufferPos += 2;                *(fBufferPos-1) = 0;                fHeaderRead = true;            }            else            {                //                // Header is not yet read, do another recv() to get more data...                aLent = recv(s, fBufferEnd, (sizeof(fBuffer) - 1) - (fBufferEnd - fBuffer), 0);                if (aLent == SOCKET_ERROR || aLent == 0)                {                    // Call WSAGetLastError() to get the error number.                    ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::NetAcc_ReadSocket, urlSource.getURLText(), fMemoryManager);                }                fBufferEnd = fBufferEnd + aLent;                *fBufferEnd = 0;            }        }    } while(fHeaderRead == false);    // Make sure the header includes an HTTP 200 OK response.    //    char *p = strstr(fBuffer, "HTTP");    if (p == 0)    {        ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::NetAcc_ReadSocket, urlSource.getURLText(), fMemoryManager);    }    p = strchr(p, ' ');    if (p == 0)    {        ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::NetAcc_ReadSocket, urlSource.getURLText(), fMemoryManager);    }    int httpResponse = atoi(p);    if (httpResponse != 200)    {        // Most likely a 404 Not Found error.        //   Should recognize and handle the forwarding responses.        //        ThrowXMLwithMemMgr1(NetAccessorException, XMLExcepts::File_CouldNotOpenFile, urlSource.getURLText(), fMemoryManager);    }    fSocketHandle = (unsigned int) s;}BinHTTPURLInputStream::~BinHTTPURLInputStream(){    shutdown(fSocketHandle, SD_BOTH);    closesocket(fSocketHandle);}////  readBytes//unsigned int BinHTTPURLInputStream::readBytes(XMLByte* const    toFill                                    , const unsigned int    maxToRead){    unsigned int len = fBufferEnd - fBufferPos;    if (len > 0)    {        // If there's any data left over in the buffer into which we first        //   read from the server (to get the http header), return that.        if (len > maxToRead)            len = maxToRead;        memcpy(toFill, fBufferPos, len);        fBufferPos += len;    }    else    {        // There was no data in the local buffer.        // Read some from the socket, straight into our caller's buffer.        //        len = recv((SOCKET) fSocketHandle, (char *) toFill, maxToRead, 0);        if (len == SOCKET_ERROR)        {            // Call WSAGetLastError() to get the error number.            ThrowXMLwithMemMgr(NetAccessorException, XMLExcepts::NetAcc_ReadSocket, fMemoryManager);        }    }    fBytesProcessed += len;    return len;}XERCES_CPP_NAMESPACE_END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品影音先锋| 亚洲午夜免费电影| 91蜜桃免费观看视频| 亚洲一区在线视频| 欧美一区二区精品在线| 老司机一区二区| 国产日韩v精品一区二区| aaa亚洲精品一二三区| 亚洲精品中文字幕乱码三区 | 狠狠色狠狠色合久久伊人| 久久中文娱乐网| 北条麻妃一区二区三区| 一区二区三区在线视频观看| 欧美精品vⅰdeose4hd| 久久国产生活片100| 国产精品日韩精品欧美在线| 欧美色图天堂网| 久久亚洲一区二区三区明星换脸| 国产精品夜夜嗨| 亚洲男同性恋视频| 日韩欧美一级在线播放| 福利一区二区在线| 亚洲国产精品一区二区www| 精品国产亚洲在线| 91看片淫黄大片一级在线观看| 亚洲一区二区不卡免费| 欧美精品一区二区三区一线天视频 | 精品一区二区三区久久| 中文字幕欧美三区| 色天天综合色天天久久| 奇米影视7777精品一区二区| 中文字幕av一区二区三区高 | 欧美精品在欧美一区二区少妇| 国产视频一区在线观看| 欧美这里有精品| 国产乱码精品一品二品| 亚洲第一成年网| 久久九九久精品国产免费直播| 在线国产电影不卡| 激情综合五月天| 一区二区三区精品| 久久久精品国产免大香伊| 欧美日韩精品一区二区天天拍小说| 国产乱码精品一区二区三区忘忧草 | 国产精品 欧美精品| 一区二区三区四区蜜桃| 日韩午夜激情视频| 91网站在线观看视频| 麻豆91免费观看| 欧美综合久久久| 成人午夜电影久久影院| 日韩精品国产欧美| 国产精品不卡一区二区三区| 日韩视频免费观看高清完整版 | 精品国产一区二区三区四区四| 97国产一区二区| 久久69国产一区二区蜜臀| 一区二区三区美女视频| 国产午夜亚洲精品午夜鲁丝片| 欧美日高清视频| 97久久精品人人爽人人爽蜜臀| 韩日精品视频一区| 五月综合激情网| 亚洲精品久久7777| 中文字幕av一区 二区| 精品少妇一区二区三区免费观看| 欧美做爰猛烈大尺度电影无法无天| 国产精品国产三级国产专播品爱网| 日韩欧美国产wwwww| 欧美视频三区在线播放| 色综合一区二区三区| 成人在线综合网站| 国产一区二区成人久久免费影院 | 日韩午夜在线影院| 欧美色涩在线第一页| 91视频.com| 成人av在线影院| 国产伦精品一区二区三区视频青涩 | 中文字幕一区二区三区四区不卡| 日韩欧美不卡在线观看视频| 欧美日韩激情在线| 色视频成人在线观看免| 成人91在线观看| 久久久精品免费网站| 欧美一级生活片| 欧美一区二区三区视频免费| 欧美日韩国产免费一区二区| 欧美亚洲另类激情小说| 91免费精品国自产拍在线不卡| 成人毛片在线观看| 福利电影一区二区| 国产99久久精品| 国产精品18久久久久久久久| 国产美女精品人人做人人爽| 九色综合狠狠综合久久| 毛片av一区二区三区| 蜜臀av一区二区| 免费看黄色91| 麻豆精品视频在线观看视频| 日本不卡高清视频| 蜜臀精品久久久久久蜜臀| 另类专区欧美蜜桃臀第一页| 裸体健美xxxx欧美裸体表演| 久久99国产精品久久99果冻传媒| 理论片日本一区| 极品少妇一区二区| 精品一区二区免费| 国产欧美精品一区二区色综合| 久久一夜天堂av一区二区三区| 精品毛片乱码1区2区3区| 精品精品国产高清一毛片一天堂| 日韩久久久精品| 精品国产三级电影在线观看| 久久亚洲精品小早川怜子| 久久女同精品一区二区| 国产日韩欧美不卡在线| 国产精品久久久久久久久免费丝袜| 国产精品进线69影院| 怡红院av一区二区三区| 亚洲国产va精品久久久不卡综合 | 日本免费在线视频不卡一不卡二| 奇米777欧美一区二区| 激情欧美一区二区三区在线观看| 国产乱码一区二区三区| 成人午夜伦理影院| 色网综合在线观看| 欧美人动与zoxxxx乱| 日韩亚洲欧美成人一区| 国产日韩欧美不卡在线| 亚洲欧美另类小说视频| 亚洲综合清纯丝袜自拍| 日韩免费成人网| 中文字幕欧美激情| 亚洲最新在线观看| 全国精品久久少妇| 国产精品羞羞答答xxdd| 91在线观看美女| 欧美日韩国产影片| 亚洲精品在线电影| 成人欧美一区二区三区黑人麻豆 | 美女一区二区在线观看| 国内精品嫩模私拍在线| 成人精品一区二区三区四区| 欧美午夜影院一区| 欧美精品一区二区三区蜜桃| 国产精品天美传媒沈樵| 一级特黄大欧美久久久| 精品一区二区日韩| 91免费在线看| 日韩三级中文字幕| 国产精品成人一区二区艾草| 无码av中文一区二区三区桃花岛| 狠狠色综合色综合网络| 一本色道久久加勒比精品| 日韩一区二区三区电影| 国产精品视频第一区| 日韩欧美国产综合一区 | 91网站最新地址| 日韩视频免费观看高清完整版 | 在线播放国产精品二区一二区四区| 91成人在线观看喷潮| 成人免费黄色大片| 欧美三级韩国三级日本三斤| 精品美女一区二区| 亚洲精品中文字幕乱码三区| 麻豆精品新av中文字幕| 色综合天天综合狠狠| 欧美一区二区三区色| 中文字幕一区不卡| 免费成人在线视频观看| av成人免费在线| 精品嫩草影院久久| 亚洲影视资源网| 国产成人精品网址| 6080亚洲精品一区二区| 亚洲欧洲日韩一区二区三区| 久久99精品久久久久| 婷婷国产v国产偷v亚洲高清| 国产专区综合网| 欧美四级电影网| 国产精品久久影院| 久久精品二区亚洲w码| 欧美亚洲国产bt| 欧美激情综合在线| 男男gaygay亚洲| 91精彩视频在线观看| 国产欧美一区二区三区在线老狼| 午夜精品一区二区三区免费视频| 成人免费黄色在线| 精品国产一区二区三区忘忧草| 亚洲成av人片在线| 91麻豆免费看| 国产欧美日韩激情| 狠狠色丁香久久婷婷综| 欧美巨大另类极品videosbest | 欧美哺乳videos| 亚洲第一激情av| 色综合天天狠狠| 亚洲国产成人在线| 国产一区二区三区四区五区入口|