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

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

?? htnet.h

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*  					W3C Sample Code Library libwww HTNet Class!  The Net Class!*//***	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.*//*The Net class manages information related to a "thread" in libwww. As libwwwthreads are not really threads but a notion of using interleaved, non-blockingI/O for accessing data objects from the network (or local file system), theycan be used on any platform with or without support for native threads. Inthe case where you have an application using real threads the Net class issimply a object maintaining links to all other objects involved in servingthe request. If you are using the libwww pseudo threads then the Net objectcontains enough information to stop and start a request based on which BSDsockets are ready. In practise this is of course transparent to the application- this is just to explain the difference.When a Request object is passed to the Library ,the core creates a new HTNet object per channelused by the request. In many cases a request only uses a singlechannel object but, for example, FTP requests useat least two - one for the control connection and one for the data connection.You can find more information about the libwww pseudo thread model in the Multithread Specifications.This module is implemented by HTNet.c, and it is apart of the W3C Sample Code Library.*/#ifndef HTNET_H#define HTNET_H/*The HTNet object is the core of the request queue management.This object contains information about the socket descriptor, the input readbuffer etc. required to identify and service a request.*/typedef struct _HTNet HTNet;#include "HTEvent.h"#include "HTReq.h"#include "HTResponse.h"#include "HTTrans.h"#include "HTHost.h"#include "HTProt.h"#include "HTChannl.h"#include "HTDNS.h"/*.  Generic BEFORE and AFTER Filter Management.Filter functions can be registered to be called before andafter a request has either been started or has terminated. Theconditions for BEFORE and AFTER filters are not the same, and sowe maintain them independently. Filters can be registered globally or locally.The global filters are registered directly by the Net Object (this module)and the local filters are registered by theHTRequest Object. However, both &nbsp;local andglobal filters use the same regisration mechanism which we provide here.(  Filter Ordering)Filters can be registered by anyone and as they are an often used mechanismfor introducing extensions in libwww, they are videly used to handleauthentication, redirection, etc. Many filters can be registered at onceand not all of the filters may know about the other filters. Therefore, itis difficult to specify an absolute ordering by which the filters shouldbe called. Instead you can decide a relative order by which the filters shouldbe called. The order works pretty much like the Unix priority mechanism runningfrom HT_FILTER_FIRST to HT_FILTER_LAST havingHT_FILTER_MIDDLE being the "normal" case.*/typedef enum _HTFilterOrder {    HT_FILTER_FIRST	= 0x0,		/*     0 */    HT_FILTER_EARLY	= 0x3FFF,	/* 16383 */    HT_FILTER_MIDDLE	= 0x7FFF,	/* 32767 */    HT_FILTER_LATE	= 0xBFFE,	/* 49150 */    HT_FILTER_LAST	= 0xFFFF	/* 65535 */} HTFilterOrder;/*In case multiple filters are registered with the same order then they arecalled in the inverse order they were registered.&nbsp;(  Filter URL Templates)Both BEFORE and AFTER filters can be registered with a URLtemplate in which case they are only called when the Request URLmatches the template. A template is simply a string which is matched againstthe Request URL. The string can be terminated by a&nbsp;single"*" in which case all strings matching the template up til the"*" is considered a match. A template can be as short as the access schemewhich enmables a filter for a specific access method only, for example"http//<star>".(  BEFORE Filters)A BEFORE filter is called whenever we issue a request and they havebeen selected by the execution procedure. BEFORE filters are registeredwith a context and a filter order by which they are to be calledand a URL template which may be NULL. In this case, the filter iscalled on every request. The mode can be used by anybody to pass an extraparameter to a filter. This is not really OO thinking - but hey - this isC ;-)*/typedef int HTNetBefore (HTRequest * request, void * param, int mode);/*You can add a BEFORE filter in the list provided by the caller. Severalfilters can be registered in which case they are called with the filter orderingin mind.*/extern BOOL HTNetCall_addBefore (HTList * list, HTNetBefore * before,				 const char * tmplate, void * param,                                 HTFilterOrder order);/*You can also unregister all instances of a BEFORE filter from a list usingthe following function*/extern BOOL HTNetCall_deleteBefore (HTList * list, HTNetBefore * before);/*You get rid of all BEFORE filters using this function*/extern BOOL HTNetCall_deleteBeforeAll (HTList * list);/*The BEFORE filters are expected and called if appropriate every time we issuea new request. Libwww calls the BEFORE filters in the order specified atregistration time. If a filter returns other than HT_OK then stop and returnimmediately. Otherwise return what the last filter returns.*/extern int HTNetCall_executeBefore (HTList * list, HTRequest * request);/*(  AFTER Filters)An AFTER filter is called whenever we have terminated a request. Thatis, on the way out from the protocol module andback to the application. AFTER filters are registered with acontext, a status, a filter order by which they areto be called and a URL template which may be NULL. The status of therequest may determine which filter to call. The set of possible values aregiven below. An AFTER filter can be registered to handle one or moreof the codes.      HT_ERROR      An error occured      HT_LOADED      The document was loaded      HT_NO_DATA      OK, but no data      HT_NO_ACCESS      The request could not be succeeded due to lack of credentials      HT_NO_PROXY_ACCESS      The request could not be succeeded due to lack of credentials for accessing    an intermediate proxy      HT_RETRY      Retry request after at a later time      HT_PERM_REDIRECT      The request has been permanently redirected and we send back the new URL      HT_TEMP_REDIRECT      The request has been temporarily redirected and we send back the new URL      HT_ALL      All of aboveA Protocol module can also, in certain cases, return a HT_IGNOREin which case no filters are called*/typedef int HTNetAfter (HTRequest * request, HTResponse * response,                        void * param, int status);/*You can register a AFTER filter in the list provided by the caller. Severalfilters can be registered in which case they are called with the filter orderingin mind.*/extern BOOL HTNetCall_addAfter (HTList * list, HTNetAfter * after,				const char * tmplate, void * param,				int status, HTFilterOrder order);/*You can either unregister all filters registered for a given status usingthis function or the filter for all status codes.*/extern BOOL HTNetCall_deleteAfter (HTList * list, HTNetAfter * after);extern BOOL HTNetCall_deleteAfterStatus (HTList * list, int status);/*You can also delete all AFTER filters in list*/extern BOOL HTNetCall_deleteAfterAll (HTList * list);/*This function calls all the AFTER filters in the order specified at registrationtime and if it has the right status code and it's not HT_IGNORE.We also check for any template and whether it matches or not. If a filterreturns other than HT_OK then stop and return immediately. Otherwise returnwhat the last filter returns.*/extern int HTNetCall_executeAfter (HTList * list, HTRequest * request,				   int status);/*.  Global BEFORE and AFTER Filter Management.Global filters are inspected on every request (they do not have to be called- only if the conditions match). You can also register filters locally inthe Request object.  Global BEFORE FiltersThese are the methods to handle global BEFORE Filters.*/extern BOOL HTNet_setBefore (HTList * list);extern HTList * HTNet_before (void);extern BOOL HTNet_addBefore (HTNetBefore * before, const char * tmplate,			     void * param, HTFilterOrder order);extern BOOL HTNet_deleteBefore (HTNetBefore * before);/*You can call both the local and the global BEFORE filters (if any)*/extern int HTNet_executeBeforeAll (HTRequest * request);/*  Global AFTER FiltersThese are the methods to handle global AFTER Filters.*/extern BOOL HTNet_setAfter (HTList * list);extern HTList * HTNet_after (void);extern BOOL HTNet_addAfter (HTNetAfter * after, const char * tmplate,			    void * param, int status,                            HTFilterOrder order);extern BOOL HTNet_deleteAfter (HTNetAfter * after);extern BOOL HTNet_deleteAfterStatus (int status);/*You can call both the local and the global AFTER filters (if any)*/extern int HTNet_executeAfterAll (HTRequest * request, int status);/*.  Socket Resource Management.The request queue ensures that no more than a fixed number of TCP connectionsare open at the same time. If more requests are handed to the Library, theyare put into the pending queue and initiated when sockets become free.(  Number of Simultanous open TCP connections)Set the max number of simultanous sockets. The default value is HT_MAX_SOCKETSwhich is 6. The number of persistent connections depend on this value asa deadlock can occur if all available sockets a persistent (see theDNS Manager for more information on setting thenumber of persistent connections). The number of persistent connections cannever be more than the max number of sockets-2, so letting newmax=2 preventspersistent sockets.*/extern BOOL HTNet_setMaxSocket (int newmax);extern int  HTNet_maxSocket (void);/*(  Socket Counters)*/extern void HTNet_increaseSocket (void);extern void HTNet_decreaseSocket (void);extern int HTNet_availableSockets (void);/*(  Persistent Socket Counters)*/extern void HTNet_increasePersistentSocket (void);extern void HTNet_decreasePersistentSocket (void);extern int HTNet_availablePersistentSockets (void);/*(  Any Ongoing Connections?)Returns whether there are active requests. Idle persistent sockets do notcount as active.*/extern BOOL HTNet_isIdle (void);/*(  List Active Queue)Returns the list of active requests that are currently having an open connection.Returns list of HTNet objects or NULL if error.*/extern HTList *HTNet_activeQueue (void);extern BOOL HTNet_idle (void);/*(  Are we Active?

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人片在线不卡一二三区| 成人精品国产一区二区4080| 国产激情视频一区二区三区欧美| 成a人片亚洲日本久久| 欧美日韩国产区一| 中文字幕第一区综合| 丝袜诱惑制服诱惑色一区在线观看| 国产精一品亚洲二区在线视频| 在线观看一区日韩| 国产精品亲子乱子伦xxxx裸| 三级影片在线观看欧美日韩一区二区| 丁香啪啪综合成人亚洲小说| 精品久久久久久最新网址| 亚洲午夜视频在线| 一本一道综合狠狠老| 中文字幕二三区不卡| 久久精工是国产品牌吗| 欧美日韩免费观看一区二区三区 | 国产一区二区精品在线观看| 欧美在线小视频| 亚洲日穴在线视频| 大尺度一区二区| 国产亚洲一区字幕| 久久99精品久久久久久久久久久久 | 91精品国产日韩91久久久久久| 亚洲色图在线播放| 色综合天天综合网国产成人综合天| 精品黑人一区二区三区久久| 日日摸夜夜添夜夜添亚洲女人| 日本韩国欧美一区| 亚洲激情一二三区| 欧美影视一区在线| 亚洲一区二区不卡免费| 欧洲人成人精品| 亚洲午夜久久久久久久久久久| 色综合中文字幕国产 | 国产馆精品极品| www激情久久| 国产精品一区免费视频| 国产午夜精品理论片a级大结局| 国内国产精品久久| 国产欧美精品区一区二区三区 | 一区二区高清免费观看影视大全 | 欧美精品久久天天躁| 午夜视频久久久久久| 日韩一区二区三| 国产一区二区在线免费观看| 久久久精品天堂| 91在线国内视频| 亚洲一区二区在线免费看| 69堂成人精品免费视频| 久久精品免费观看| 亚洲国产精品av| 欧美自拍丝袜亚洲| 青青草97国产精品免费观看无弹窗版| 日韩一级片网址| 成人一区二区在线观看| 中文字幕一区二区三区在线播放| 91麻豆成人久久精品二区三区| 亚洲国产成人av好男人在线观看| 欧美日韩国产一级片| 国精产品一区一区三区mba视频 | 制服丝袜亚洲色图| 国产一区二区三区在线观看免费 | 北条麻妃国产九九精品视频| 一区二区国产视频| 久久色中文字幕| 日本伦理一区二区| 免费久久99精品国产| 国产精品传媒在线| 777奇米四色成人影色区| 国产69精品久久99不卡| 图片区小说区国产精品视频 | 欧美精品日韩精品| 福利一区二区在线| 日韩影院免费视频| 国产欧美精品一区二区色综合| 欧美私模裸体表演在线观看| 国内精品免费**视频| 亚洲激情综合网| 国产日韩精品视频一区| 欧美色综合久久| 不卡区在线中文字幕| 美女视频免费一区| 亚洲精品亚洲人成人网在线播放| 2014亚洲片线观看视频免费| 欧美性大战xxxxx久久久| 国产成人av一区二区| 视频一区欧美日韩| 亚洲欧洲在线观看av| 久久亚洲精品国产精品紫薇| 在线播放91灌醉迷j高跟美女| 成人一区二区三区中文字幕| 久久99国产精品久久| 香蕉av福利精品导航| 亚洲蜜臀av乱码久久精品蜜桃| 精品捆绑美女sm三区| 欧美日韩免费一区二区三区| 91免费观看视频在线| 国产成人午夜高潮毛片| 久久狠狠亚洲综合| 青青草91视频| 免费人成在线不卡| 调教+趴+乳夹+国产+精品| 一区二区三区在线视频观看58| 国产精品水嫩水嫩| 国产偷v国产偷v亚洲高清 | 欧美一级一区二区| 精品视频一区二区不卡| 在线精品视频免费观看| 日本高清不卡在线观看| 色婷婷综合激情| 色婷婷综合在线| 日本韩国精品在线| 91成人免费在线视频| 欧美主播一区二区三区美女| 91久久精品网| 欧美亚一区二区| 91久久精品一区二区| 欧美三级视频在线观看| 欧美系列日韩一区| 9191成人精品久久| 欧美不卡一区二区三区| 久久综合一区二区| 亚洲国产成人一区二区三区| 国产亚洲综合色| 中文字幕亚洲在| 亚洲综合自拍偷拍| 婷婷开心激情综合| 另类人妖一区二区av| 国产精选一区二区三区| 成人免费视频app| 91视频在线观看| 欧美日韩你懂的| 欧美v国产在线一区二区三区| 欧美精品一区二区三区一线天视频 | 久久精品一区二区三区不卡牛牛 | 亚洲激情图片一区| 视频一区视频二区中文字幕| 久久精品国产色蜜蜜麻豆| 国产成人自拍高清视频在线免费播放 | av网站免费线看精品| 色婷婷精品久久二区二区蜜臀av| 欧美日韩三级一区二区| 精品区一区二区| 国产日韩精品一区二区三区| 亚洲女厕所小便bbb| 日韩中文字幕区一区有砖一区| 久久激情五月激情| 色香色香欲天天天影视综合网| 91精品久久久久久久久99蜜臂| 久久这里都是精品| 亚洲一区国产视频| 国产精品一区二区免费不卡| 日本高清不卡在线观看| 2020日本不卡一区二区视频| 亚洲欧美日韩久久精品| 秋霞成人午夜伦在线观看| 成人午夜电影网站| 777亚洲妇女| 中文字幕日韩av资源站| 久久国产尿小便嘘嘘| 91久久精品午夜一区二区| 精品国产乱码久久久久久免费 | 久久久电影一区二区三区| 亚洲精品videosex极品| 国产另类ts人妖一区二区| 欧美日韩中字一区| 中文字幕精品在线不卡| 麻豆专区一区二区三区四区五区| 91麻豆成人久久精品二区三区| 日韩欧美卡一卡二| 亚洲一区在线观看免费观看电影高清| 精品一区二区三区免费播放| 欧美性高清videossexo| 国产精品你懂的| 国产精品91xxx| 日韩一级免费观看| 亚洲在线观看免费视频| 不卡的av网站| 国产精品视频一二三| 老司机精品视频在线| 欧美日韩一二三区| 一区二区三区日韩在线观看| 国产91露脸合集magnet| 精品国产乱码久久久久久影片| 午夜精品福利久久久| 色综合久久中文字幕| 1024成人网| 不卡高清视频专区| 国产精品午夜在线观看| 加勒比av一区二区| 精品毛片乱码1区2区3区| 青青国产91久久久久久| 555www色欧美视频| 日欧美一区二区| 91精品国产色综合久久不卡蜜臀 | 国产一区二区久久| 精品国产第一区二区三区观看体验| 亚洲第一电影网|