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

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

?? httpd.sgml

?? 嵌入式操作系統ECOS的網絡開發包
?? SGML
?? 第 1 頁 / 共 2 頁
字號:
it will be ignored.
</para>
</note>

<sect2>
<title>HTTP Support</title>
<programlisting width=72>
void cyg_http_start( FILE *client, char *content_type, int content_length );
void cyg_http_finish( FILE *client );
#define html_begin(__client)
#define html_end( __client )
</programlisting>
<para>
The function <function>cyg_http_start()</function> generates a simple
HTTP response header containing the value of
<literal>CYGDAT_HTTPD_SERVER_ID</literal> in the &quot;Server&quot; field, and the
values of <parameter>content_type</parameter> and
<parameter>content_length</parameter> in the &quot;Content-type&quot;
and &quot;Content-length&quot; field respectively. The function
<function>cyg_http_finish()</function> just adds an extra newline to
the end of the output and then flushes it to force the data out to the
client.
</para>
<para>
The macro <literal>html_begin()</literal> generates an HTTP header
with a &quot;text/html&quot; content type followed by an opening
&quot;&lt;html&gt;&quot; tag. <literal>html_end()</literal> generates
a closing &quot;&lt;/html&gt;&quot; tag and calls
<function>cyg_http_finish()</function>.
</para>
</sect2>

<sect2>
<title>General HTML Support</title>
<programlisting width=72>
void cyg_html_tag_begin( FILE *client, char *tag, char *attr );
void cyg_html_tag_end( FILE *client, char *tag );
#define html_tag_begin( __client, __tag, __attr )
#define html_tag_end( __client, __tag )
#define html_head( __client, __title, __meta )
#define html_body_begin( __client, __attr )
#define html_body_end( __client )
#define html_heading( __client, __level, __heading )
#define html_para_begin( __client, __attr )
#define html_url( __client, __text, __link )
#define html_image( __client, __source, __alt, __attr )
</programlisting>
<para>
The function <function>cyg_html_tag_begin()</function> generates an
opening tag with the given name. The function
<function>cyg_html_tag_end()</function> generates a closing tag with
the given name. The macros <literal>html_tag_begin()</literal> and
<literal>html_tag_end</literal> are just wrappers for these functions.
</para>
<para>
The macro <literal>html_head()</literal> generates an HTML header
section with <parameter>__title</parameter> as the title. The
<parameter>__meta</parameter> argument defines any meta tags that will
be inserted into the header. <literal>html_body_begin()</literal> and
<literal>html_body_end</literal> generate HTML body begin and end
tags.
</para>
<para>
<literal>html_heading()</literal> generates a complete HTML header
where <parameter>__level</parameter> is a numerical level, between 1
and 6, and <parameter>__heading</parameter> is the heading
text. <literal>html_para_begin()</literal> generates a paragraph
break.
</para>
<para>
<literal>html_url()</literal> inserts a URL where
<parameter>__text</parameter> is the displayed text and
<parameter>__link</parameter> is the URL of the linked
page. <literal>html_image()</literal> inserts an image tag where
<parameter>__source</parameter> is the URL of the image to be
included and <parameter>__alt</parameter> is the alternative text for
when the image is not displayed.
</para>
</sect2>

<sect2>
<title>Table Support</title>
<programlisting width=72>
#define html_table_begin( __client, __attr )
#define html_table_end( __client )
#define html_table_header( __client, __content, __attr )        
#define html_table_row_begin( __client, __attr )     
#define html_table_row_end( __client )               
#define html_table_data_begin( __client, __attr )     
#define html_table_data_end( __client )               
</programlisting>
<para>
<literal>html_table_begin()</literal> starts a table and
<literal>html_table_end()</literal> end
it. <literal>html_table_header()</literal> generates a simple table
column header containg the string <parameter>__content</parameter>. 
</para>
<para>
<literal>html_table_row_begin()</literal> and
<literal>html_table_row_end()</literal> begin and end a table row,
and similarly <literal>html_table_data_begin()</literal> and
<literal>html_table_data_end()</literal> begin and end a table
entry. 
</para>
</sect2>

<sect2>
<title>Forms Support</title>
<programlisting width=72>
#define html_form_begin( __client, __url, __attr )      
#define html_form_end( __client )               
#define html_form_input( __client, __type, __name, __value, __attr )            
#define html_form_input_radio( __client, __name, __value, __checked )
#define html_form_input_checkbox( __client, __name, __value, __checked )
#define html_form_input_hidden( __client, __name, __value ) 
#define html_form_select_begin( __client, __name, __attr )      
#define html_form_option( __client, __value, __label, __selected )      
#define html_form_select_end( __client ) 
void cyg_formdata_parse( char *data, char *list[], int size );
char *cyg_formlist_find( char *list[], char *name );
</programlisting>
<para>
<literal>html_form_begin()</literal> begins a form, the
<parameter>__url</parameter> argument is the value for the
<literal>action</literal>
attribute. <literal>html_form_end()</literal> ends the form.
</para>
<para>
<literal>html_form_input()</literal> defines a general form input
element with the given type, name and
value. <literal>html_form_input_radio</literal> creates a radio button
with the given name and value; the <parameter>__checked</parameter>
argument is a boolean expression that is used to determine whether the
<literal>checked</literal> attribute is added to the tag. Similarly
<literal>html_form_input_checkbox()</literal> defines a checkbox
element. <literal>html_form_input_hidden()</literal> defines a hidden
form element with the given name and value.
</para>
<para>
<literal>html_form_select_begin()</literal> begins a multiple choice
menu with the given name. <literal>html_form_select_end()</literal>
end it. <literal>html_form_option()</literal> defines a menu entry
with the given value and label; the <parameter>__selected</parameter>
argument is a boolean expression controlling whether the
<literal>selected</literal> attribute is added to the tag.
</para>
<para>
<function>cyg_formdata_parse()</function> converts a form response
string into an <literal>NULL</literal>-terminated array of
&quot;name=value&quot; entries. The <parameter>data</parameter>
argument is the string as passed to the handler function; note that
this string is not copied and will be updated in place to form the
list entries.  <parameter>list</parameter> is a pointer to an array of
character pointers, and is <parameter>size</parameter> elements long.
<function>cyg_formlist_find()</function> searches a list generated by
<function>cyg_formdata_parse()</function> and returns a pointer to the
value part of the string whose name part matches
<parameter>name</parameter>; if there is no match it will return
<literal>NULL</literal>.
</para>
</sect2>

<sect2>
<title>Predefined Handlers</title>
<programlisting width=72>

int cyg_httpd_send_html( FILE *client, char *filename, char *request, void *arg );

typedef struct
{
    char        *content_type;
    cyg_uint32  content_length;
    cyg_uint8   *data;
} cyg_httpd_data;
#define CYG_HTTPD_DATA( __name, __type, __length, __data )

int cyg_httpd_send_data( FILE *client, char *filename, char *request, void *arg );

</programlisting>
<para>
The HTTP server defines a couple of predefined handers to make it
easier to deliver simple, static content.
</para>
<para>
<function>cyg_httpd_send_html()</function> takes a
<literal>NULL</literal>-terminated string as the argument and sends it
to the client with an HTTP header indicating that it is HTML. The
following is an example of its use:
</para>
<programlisting width=72>

char cyg_html_message[] = "&lt;head&gt;&lt;title&gt;Welcome&lt;/title&gt;&lt;/head&gt;\n"
                          "&lt;body&gt;&lt;h2&gt;Welcome to my Web Page&lt;/h2&gt;&lt;/body&gt;\n"

CYG_HTTPD_TABLE_ENTRY( cyg_html_message_entry,
                       "/message.html",
                       cyg_httpd_send_html,
                       cyg_html_message );

</programlisting>
<para>
<function>cyg_httpd_send_data()</function> Sends arbitrary data to the
client. The argument is a pointer to a <type>cyg_httpd_data</type>
structure that defines the content type and length of the data, and a
pointer to the data itself. The <literal>CYG_HTTPD_DATA()</literal>
macro automates the definition of the structure. Here is a typical
example of its use:
</para>
<programlisting width=72>

static cyg_uint8 ecos_logo_gif[] = {
    ...
};

CYG_HTTPD_DATA( cyg_monitor_ecos_logo_data,
                "image/gif",
                sizeof(ecos_logo_gif),
                ecos_logo_gif );

CYG_HTTPD_TABLE_ENTRY( cyg_monitor_ecos_logo,
                       "/monitor/ecos.gif",
                       cyg_httpd_send_data,
                       &amp;cyg_monitor_ecos_logo_data );

</programlisting>
</sect2>

</sect1>

<!-- =============================================================== -->

<sect1 id="net-httpd-monitor">
<title>System Monitor</title>
<para>
Included in the HTTPD package is a simple System Monitor that is
intended to act as a test and an example of how to produce servers.
It is also hoped that it might be of some use in and of itself.
</para>
<para>
The System Monitor is intended to work in the background of any
application. Adding the network stack and the HTTPD package to any
configuration will enable the monitor by default. It may be disabled
by disabling the <literal>CYGPKG_HTTPD_MONITOR</literal> option.
</para>
<para>
The monitor is intended to be simple and self-explanatory in use. It
consists of four main pages. The thread monitor page presents a table
of all current threads showing such things as id, state, priority,
name and stack dimensions. Clicking on the thread ID will link to a
thread edit page where the thread's state and priority may be
manipulated. The interrupt monitor just shows a table of the current
interrupts and indicates which are active. The memory monitor shows a
256 byte page of memory, with controls to change the base address and
display element size. The network monitor page shows
information extracted from the active network interfaces and
protocols. Finally, if kernel instrumentation is enabled, the
instrumentation page provides some controls over the instrumentation
mechanism, and displays the instrumentation buffer.
</para>
</sect1>

<!-- =============================================================== -->

</chapter>
</part>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲品质自拍视频| 免费精品视频在线| 偷拍亚洲欧洲综合| 粗大黑人巨茎大战欧美成人| 欧美男人的天堂一二区| 国产精品美女久久久久久久久 | 一区二区三区四区视频精品免费| 久久毛片高清国产| 一区二区三区丝袜| 国产mv日韩mv欧美| 日韩精品在线一区二区| 亚洲电影中文字幕在线观看| 国产成人精品免费看| 日韩精品最新网址| 亚洲123区在线观看| 在线一区二区观看| 国产精品传媒入口麻豆| 国产一区二区导航在线播放| 日韩欧美卡一卡二| 丝袜美腿亚洲综合| 欧美日韩免费观看一区二区三区| 欧美精选一区二区| 亚洲制服丝袜在线| 色哟哟在线观看一区二区三区| 在线观看亚洲成人| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲一二三级电影| 欧美在线观看你懂的| 一级精品视频在线观看宜春院| 日韩专区在线视频| 欧美日韩国产一二三| 天天做天天摸天天爽国产一区| 日本系列欧美系列| 欧美精品丝袜中出| 美腿丝袜亚洲色图| 久久亚洲精精品中文字幕早川悠里| 久久精品人人爽人人爽| 亚洲乱码中文字幕| 99久久99久久综合| 亚洲精品欧美在线| 欧美精品在线观看一区二区| 免费成人在线观看| 成人美女在线视频| 亚洲免费在线播放| 国内精品久久久久影院色| 欧洲亚洲精品在线| 亚洲国产成人91porn| 日韩欧美成人一区| 国产精品一区专区| 亚洲三级小视频| 欧美在线|欧美| 免费日本视频一区| 久久夜色精品一区| 不卡视频一二三| 亚洲一区二区三区美女| 成人av电影在线网| 亚洲男人的天堂av| 欧美一区二区女人| 天天综合色天天| 久久婷婷综合激情| 91在线精品一区二区| 亚洲va国产va欧美va观看| 精品国产伦一区二区三区观看体验| 亚洲精品乱码久久久久| 欧美日韩精品欧美日韩精品一| 一区免费观看视频| 欧美性欧美巨大黑白大战| 国产精品免费久久| 538在线一区二区精品国产| 一区二区三区在线影院| 不卡视频在线观看| 日本一不卡视频| 亚洲人精品一区| 精品99久久久久久| 欧美性色黄大片| 国产成人午夜视频| 青娱乐精品视频在线| 亚洲日本一区二区| 日韩欧美国产高清| 欧美日韩中文另类| 97精品视频在线观看自产线路二| 国产欧美精品一区二区色综合朱莉| 国产在线视视频有精品| 亚洲一区二区视频在线| 国产日产亚洲精品系列| 91精品国产综合久久精品麻豆| 日韩制服丝袜av| 日韩欧美三级在线| 欧美性猛片xxxx免费看久爱| 成人午夜私人影院| 国产精品视频一二三区| 成人精品视频一区二区三区| 蜜桃视频免费观看一区| 亚洲色图视频网| 国产精品嫩草99a| 色婷婷综合久久久中文一区二区| 中文字幕在线不卡一区| 精品精品国产高清一毛片一天堂| 国内精品久久久久影院薰衣草| 久久久久成人黄色影片| 国产成人午夜视频| 国产精品资源站在线| 中文字幕日韩一区| 在线视频国内自拍亚洲视频| 高清成人免费视频| 国内精品国产三级国产a久久| 国产精品你懂的在线欣赏| 久久综合99re88久久爱| 日韩精品影音先锋| 日韩一卡二卡三卡国产欧美| 欧美日本一道本在线视频| 欧美性一区二区| 欧美日韩三级在线| 国产精品系列在线播放| 久久99国产精品久久99果冻传媒| 国产校园另类小说区| 色综合色狠狠综合色| 日本韩国一区二区三区视频| 色综合亚洲欧洲| 欧美午夜不卡在线观看免费| 国内不卡的二区三区中文字幕| 中文字幕在线观看一区二区| 亚洲国产成人在线| 国产精品久久久久精k8| 国产精品国产三级国产有无不卡| 67194成人在线观看| 欧美卡1卡2卡| 色香蕉成人二区免费| 久久91精品国产91久久小草| 国产一区二区三区黄视频| 国产成人免费视频网站 | 国产精品网站在线播放| 国产欧美日韩视频一区二区| 国产精品妹子av| 一区二区三区日韩精品| 日韩成人一区二区| 国产在线一区二区| 色综合咪咪久久| 日韩欧美在线网站| 久久精品亚洲乱码伦伦中文| 91麻豆精品91久久久久同性| 欧美xingq一区二区| 国产欧美日韩精品在线| wwww国产精品欧美| 中文字幕亚洲精品在线观看| 亚洲精品高清视频在线观看| 日本sm残虐另类| 成人黄色片在线观看| 欧美综合在线视频| 色综合久久久久久久久久久| 欧美裸体一区二区三区| 久久综合久久99| 日韩视频免费观看高清完整版 | 粉嫩一区二区三区在线看| 91丨九色丨国产丨porny| 777奇米四色成人影色区| 久久久久久久久99精品| 亚洲影视资源网| 亚洲欧洲三级电影| 免费观看一级特黄欧美大片| 成人av在线资源| 日韩欧美一区二区久久婷婷| 欧美男人的天堂一二区| 国产精品久久久久久久久搜平片 | 成人免费视频视频在线观看免费 | 中文字幕不卡在线观看| 精品国产一区二区三区忘忧草 | 色94色欧美sute亚洲13| 91麻豆免费视频| 日韩精品在线看片z| 亚洲国产综合在线| 国产91丝袜在线播放| 欧美人狂配大交3d怪物一区| 欧美三级乱人伦电影| 欧美三级电影在线看| 2024国产精品| 奇米888四色在线精品| 午夜精品久久一牛影视| 99精品久久只有精品| 日韩精品一区二区三区在线| 亚洲一区二区三区在线| 亚洲成人中文在线| 色综合久久综合中文综合网| 国产精品亲子乱子伦xxxx裸| 狠狠色狠狠色合久久伊人| 8x福利精品第一导航| 午夜精品福利一区二区蜜股av| 日本中文字幕不卡| 日本乱人伦aⅴ精品| 777欧美精品| 日av在线不卡| 日韩一区二区影院| 精品久久久久一区| 亚洲成人午夜电影| 91国产丝袜在线播放| 亚洲免费视频中文字幕| 99久久久无码国产精品| 国产精品久久夜| 99久久久免费精品国产一区二区| 欧美精选一区二区|