xref: /nrf52832-nimble/rt-thread/components/net/uip/doc/html/a00163.html (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2*10465441SEvalZero<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3*10465441SEvalZero<title>uIP 1.0: Web client</title>
4*10465441SEvalZero<link href="doxygen.css" rel="stylesheet" type="text/css">
5*10465441SEvalZero<link href="tabs.css" rel="stylesheet" type="text/css">
6*10465441SEvalZero</head><body>
7*10465441SEvalZero<!-- Generated by Doxygen 1.4.6 -->
8*10465441SEvalZero<div class="tabs">
9*10465441SEvalZero  <ul>
10*10465441SEvalZero    <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11*10465441SEvalZero    <li><a href="modules.html"><span>Modules</span></a></li>
12*10465441SEvalZero    <li><a href="classes.html"><span>Data&nbsp;Structures</span></a></li>
13*10465441SEvalZero    <li><a href="files.html"><span>Files</span></a></li>
14*10465441SEvalZero    <li><a href="examples.html"><span>Examples</span></a></li>
15*10465441SEvalZero  </ul></div>
16*10465441SEvalZero<h1>Web client<br>
17*10465441SEvalZero<small>
18*10465441SEvalZero[<a class="el" href="a00143.html">Applications</a>]</small>
19*10465441SEvalZero</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
20*10465441SEvalZeroThis example shows a HTTP client that is able to download web pages and files from web servers.
21*10465441SEvalZero<p>
22*10465441SEvalZeroIt requires a number of callback functions to be implemented by the module that utilizes the code: <a class="el" href="a00163.html#gc4b119801e50cc1824498a1cdf9adc37">webclient_datahandler()</a>, <a class="el" href="a00163.html#g6b942c1ef22f8cd1a726ef3364c9fbea">webclient_connected()</a>, <a class="el" href="a00163.html#g23705efb9077187881f094fc9be13bde">webclient_timedout()</a>, <a class="el" href="a00163.html#gf11d9915ec12a8cdd9fdcbb5e8fcd5c7">webclient_aborted()</a>, <a class="el" href="a00163.html#gf8f12c820cc08da32aa62898bfc02db3">webclient_closed()</a>.
23*10465441SEvalZero<p>
24*10465441SEvalZero<table border="0" cellpadding="0" cellspacing="0">
25*10465441SEvalZero<tr><td></td></tr>
26*10465441SEvalZero<tr><td colspan="2"><br><h2>Files</h2></td></tr>
27*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00111.html">webclient.h</a></td></tr>
28*10465441SEvalZero
29*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Header file for the HTTP client. <br></td></tr>
30*10465441SEvalZero
31*10465441SEvalZero<p>
32*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00110.html">webclient.c</a></td></tr>
33*10465441SEvalZero
34*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Implementation of the HTTP client. <br></td></tr>
35*10465441SEvalZero
36*10465441SEvalZero<p>
37*10465441SEvalZero<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
38*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00097.html">webclient_state</a></td></tr>
39*10465441SEvalZero
40*10465441SEvalZero<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
41*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g5a5bfd7e9060903893481db90645187b"></a><!-- doxytag: member="webclient::WEBCLIENT_CONF_MAX_URLLEN" ref="g5a5bfd7e9060903893481db90645187b" args="" -->
42*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g5a5bfd7e9060903893481db90645187b">WEBCLIENT_CONF_MAX_URLLEN</a>&nbsp;&nbsp;&nbsp;100</td></tr>
43*10465441SEvalZero
44*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ge28f6cb60e86088d8886d0f804b4f37c"></a><!-- doxytag: member="webclient::UIP_APPCALL" ref="ge28f6cb60e86088d8886d0f804b4f37c" args="" -->
45*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#ge28f6cb60e86088d8886d0f804b4f37c">UIP_APPCALL</a>&nbsp;&nbsp;&nbsp;webclient_appcall</td></tr>
46*10465441SEvalZero
47*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g31be289fd8ec3fe09b0088165d13976d"></a><!-- doxytag: member="webclient::WEBCLIENT_TIMEOUT" ref="g31be289fd8ec3fe09b0088165d13976d" args="" -->
48*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g31be289fd8ec3fe09b0088165d13976d">WEBCLIENT_TIMEOUT</a>&nbsp;&nbsp;&nbsp;100</td></tr>
49*10465441SEvalZero
50*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g8714af98a550f10dc814db92b08d1b0d"></a><!-- doxytag: member="webclient::WEBCLIENT_STATE_STATUSLINE" ref="g8714af98a550f10dc814db92b08d1b0d" args="" -->
51*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g8714af98a550f10dc814db92b08d1b0d">WEBCLIENT_STATE_STATUSLINE</a>&nbsp;&nbsp;&nbsp;0</td></tr>
52*10465441SEvalZero
53*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gc4357cec23abca29d2bb885803625a6a"></a><!-- doxytag: member="webclient::WEBCLIENT_STATE_HEADERS" ref="gc4357cec23abca29d2bb885803625a6a" args="" -->
54*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gc4357cec23abca29d2bb885803625a6a">WEBCLIENT_STATE_HEADERS</a>&nbsp;&nbsp;&nbsp;1</td></tr>
55*10465441SEvalZero
56*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g4d457c50e6f2cef57167c3804ce8bf7c"></a><!-- doxytag: member="webclient::WEBCLIENT_STATE_DATA" ref="g4d457c50e6f2cef57167c3804ce8bf7c" args="" -->
57*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g4d457c50e6f2cef57167c3804ce8bf7c">WEBCLIENT_STATE_DATA</a>&nbsp;&nbsp;&nbsp;2</td></tr>
58*10465441SEvalZero
59*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g863c94b0ed4a76997e53a3ccd5d0b6c3"></a><!-- doxytag: member="webclient::WEBCLIENT_STATE_CLOSE" ref="g863c94b0ed4a76997e53a3ccd5d0b6c3" args="" -->
60*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g863c94b0ed4a76997e53a3ccd5d0b6c3">WEBCLIENT_STATE_CLOSE</a>&nbsp;&nbsp;&nbsp;3</td></tr>
61*10465441SEvalZero
62*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g40fb1fb2d990ce04ae9bbee275627c03"></a><!-- doxytag: member="webclient::HTTPFLAG_NONE" ref="g40fb1fb2d990ce04ae9bbee275627c03" args="" -->
63*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g40fb1fb2d990ce04ae9bbee275627c03">HTTPFLAG_NONE</a>&nbsp;&nbsp;&nbsp;0</td></tr>
64*10465441SEvalZero
65*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gda99954e0f6905091885934e86c278cc"></a><!-- doxytag: member="webclient::HTTPFLAG_OK" ref="gda99954e0f6905091885934e86c278cc" args="" -->
66*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gda99954e0f6905091885934e86c278cc">HTTPFLAG_OK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
67*10465441SEvalZero
68*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gd895686859ae7d178d31be04eb0a1a97"></a><!-- doxytag: member="webclient::HTTPFLAG_MOVED" ref="gd895686859ae7d178d31be04eb0a1a97" args="" -->
69*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gd895686859ae7d178d31be04eb0a1a97">HTTPFLAG_MOVED</a>&nbsp;&nbsp;&nbsp;2</td></tr>
70*10465441SEvalZero
71*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g38af81a4c9884ce89803fc3e52383112"></a><!-- doxytag: member="webclient::HTTPFLAG_ERROR" ref="g38af81a4c9884ce89803fc3e52383112" args="" -->
72*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g38af81a4c9884ce89803fc3e52383112">HTTPFLAG_ERROR</a>&nbsp;&nbsp;&nbsp;3</td></tr>
73*10465441SEvalZero
74*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3212e70c55244608ac16316888c354f0"></a><!-- doxytag: member="webclient::ISO_nl" ref="g3212e70c55244608ac16316888c354f0" args="" -->
75*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g3212e70c55244608ac16316888c354f0">ISO_nl</a>&nbsp;&nbsp;&nbsp;0x0a</td></tr>
76*10465441SEvalZero
77*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g6cda47c85ce1b58b501b44ac9cccc50e"></a><!-- doxytag: member="webclient::ISO_cr" ref="g6cda47c85ce1b58b501b44ac9cccc50e" args="" -->
78*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g6cda47c85ce1b58b501b44ac9cccc50e">ISO_cr</a>&nbsp;&nbsp;&nbsp;0x0d</td></tr>
79*10465441SEvalZero
80*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g71e1b022f7b7fa3a154f19372b239935"></a><!-- doxytag: member="webclient::ISO_space" ref="g71e1b022f7b7fa3a154f19372b239935" args="" -->
81*10465441SEvalZero#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g71e1b022f7b7fa3a154f19372b239935">ISO_space</a>&nbsp;&nbsp;&nbsp;0x20</td></tr>
82*10465441SEvalZero
83*10465441SEvalZero<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
84*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gdc5aec3587b2c55b714a6c2f37b56cba"></a><!-- doxytag: member="webclient::uip_tcp_appstate_t" ref="gdc5aec3587b2c55b714a6c2f37b56cba" args="" -->
85*10465441SEvalZerotypedef <a class="el" href="a00097.html">webclient_state</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gdc5aec3587b2c55b714a6c2f37b56cba">uip_tcp_appstate_t</a></td></tr>
86*10465441SEvalZero
87*10465441SEvalZero<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
88*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gc4b119801e50cc1824498a1cdf9adc37">webclient_datahandler</a> (char *data, <a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> len)</td></tr>
89*10465441SEvalZero
90*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function that is called from the webclient code when HTTP data has been received.  <a href="#gc4b119801e50cc1824498a1cdf9adc37"></a><br></td></tr>
91*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g6b942c1ef22f8cd1a726ef3364c9fbea">webclient_connected</a> (void)</td></tr>
92*10465441SEvalZero
93*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function that is called from the webclient code when the HTTP connection has been connected to the web server.  <a href="#g6b942c1ef22f8cd1a726ef3364c9fbea"></a><br></td></tr>
94*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g23705efb9077187881f094fc9be13bde">webclient_timedout</a> (void)</td></tr>
95*10465441SEvalZero
96*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function that is called from the webclient code if the HTTP connection to the web server has timed out.  <a href="#g23705efb9077187881f094fc9be13bde"></a><br></td></tr>
97*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gf11d9915ec12a8cdd9fdcbb5e8fcd5c7">webclient_aborted</a> (void)</td></tr>
98*10465441SEvalZero
99*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function that is called from the webclient code if the HTTP connection to the web server has been aborted by the web server.  <a href="#gf11d9915ec12a8cdd9fdcbb5e8fcd5c7"></a><br></td></tr>
100*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gf8f12c820cc08da32aa62898bfc02db3">webclient_closed</a> (void)</td></tr>
101*10465441SEvalZero
102*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Callback function that is called from the webclient code when the HTTP connection to the web server has been closed.  <a href="#gf8f12c820cc08da32aa62898bfc02db3"></a><br></td></tr>
103*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g3caacabb2fe1c71921e1a471719ccbd2"></a><!-- doxytag: member="webclient::webclient_init" ref="g3caacabb2fe1c71921e1a471719ccbd2" args="(void)" -->
104*10465441SEvalZerovoid&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g3caacabb2fe1c71921e1a471719ccbd2">webclient_init</a> (void)</td></tr>
105*10465441SEvalZero
106*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize the webclient module. <br></td></tr>
107*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#gf9385ef9ecc74c7d53ff2f15e62bfde3">webclient_get</a> (char *host, <a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a> port, char *file)</td></tr>
108*10465441SEvalZero
109*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open an HTTP connection to a web server and ask for a file using the GET method.  <a href="#gf9385ef9ecc74c7d53ff2f15e62bfde3"></a><br></td></tr>
110*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g1d34be506a61db90dd7829117efdf8cf"></a><!-- doxytag: member="webclient::webclient_close" ref="g1d34be506a61db90dd7829117efdf8cf" args="(void)" -->
111*10465441SEvalZerovoid&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g1d34be506a61db90dd7829117efdf8cf">webclient_close</a> (void)</td></tr>
112*10465441SEvalZero
113*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Close the currently open HTTP connection. <br></td></tr>
114*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="g9e6d2864f390a4ba1ac60dc65e2b9815"></a><!-- doxytag: member="webclient::webclient_appcall" ref="g9e6d2864f390a4ba1ac60dc65e2b9815" args="(void)" -->
115*10465441SEvalZerovoid&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g9e6d2864f390a4ba1ac60dc65e2b9815">webclient_appcall</a> (void)</td></tr>
116*10465441SEvalZero
117*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g4433d3af16ea083a81576d0f18ba57c9">webclient_mimetype</a> (void)</td></tr>
118*10465441SEvalZero
119*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the MIME type of the current HTTP data stream.  <a href="#g4433d3af16ea083a81576d0f18ba57c9"></a><br></td></tr>
120*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g41e616d3fcc17e0aabfe8ab45ef0d30f">webclient_filename</a> (void)</td></tr>
121*10465441SEvalZero
122*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the filename of the current HTTP data stream.  <a href="#g41e616d3fcc17e0aabfe8ab45ef0d30f"></a><br></td></tr>
123*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g0e0ea5f24b77f124ba33bcbc7ede5bfb">webclient_hostname</a> (void)</td></tr>
124*10465441SEvalZero
125*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the hostname of the current HTTP data stream.  <a href="#g0e0ea5f24b77f124ba33bcbc7ede5bfb"></a><br></td></tr>
126*10465441SEvalZero<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00163.html#g2a939aa4fcffabbce1dc1f784a7e0ad3">webclient_port</a> (void)</td></tr>
127*10465441SEvalZero
128*10465441SEvalZero<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the port number of the current HTTP data stream.  <a href="#g2a939aa4fcffabbce1dc1f784a7e0ad3"></a><br></td></tr>
129*10465441SEvalZero</table>
130*10465441SEvalZero<hr><h2>Function Documentation</h2>
131*10465441SEvalZero<a class="anchor" name="gf11d9915ec12a8cdd9fdcbb5e8fcd5c7"></a><!-- doxytag: member="webclient.h::webclient_aborted" ref="gf11d9915ec12a8cdd9fdcbb5e8fcd5c7" args="(void)" --><p>
132*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
133*10465441SEvalZero  <tr>
134*10465441SEvalZero    <td class="mdRow">
135*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
136*10465441SEvalZero        <tr>
137*10465441SEvalZero          <td class="md" nowrap valign="top">void webclient_aborted           </td>
138*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
139*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
140*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
141*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
142*10465441SEvalZero          <td class="md" nowrap></td>
143*10465441SEvalZero        </tr>
144*10465441SEvalZero      </table>
145*10465441SEvalZero    </td>
146*10465441SEvalZero  </tr>
147*10465441SEvalZero</table>
148*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
149*10465441SEvalZero  <tr>
150*10465441SEvalZero    <td>
151*10465441SEvalZero      &nbsp;
152*10465441SEvalZero    </td>
153*10465441SEvalZero    <td>
154*10465441SEvalZero
155*10465441SEvalZero<p>
156*10465441SEvalZeroCallback function that is called from the webclient code if the HTTP connection to the web server has been aborted by the web server.
157*10465441SEvalZero<p>
158*10465441SEvalZeroThis function must be implemented by the module that uses the webclient code. <dl compact><dt><b>Examples: </b></dt><dd>
159*10465441SEvalZero<a class="el" href="a00040.html#a286">webclient.c</a>, and <a class="el" href="a00041.html#a321">webclient.h</a>.</dl>
160*10465441SEvalZero<p>
161*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>.    </td>
162*10465441SEvalZero  </tr>
163*10465441SEvalZero</table>
164*10465441SEvalZero<a class="anchor" name="gf8f12c820cc08da32aa62898bfc02db3"></a><!-- doxytag: member="webclient.h::webclient_closed" ref="gf8f12c820cc08da32aa62898bfc02db3" args="(void)" --><p>
165*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
166*10465441SEvalZero  <tr>
167*10465441SEvalZero    <td class="mdRow">
168*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
169*10465441SEvalZero        <tr>
170*10465441SEvalZero          <td class="md" nowrap valign="top">void webclient_closed           </td>
171*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
172*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
173*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
174*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
175*10465441SEvalZero          <td class="md" nowrap></td>
176*10465441SEvalZero        </tr>
177*10465441SEvalZero      </table>
178*10465441SEvalZero    </td>
179*10465441SEvalZero  </tr>
180*10465441SEvalZero</table>
181*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
182*10465441SEvalZero  <tr>
183*10465441SEvalZero    <td>
184*10465441SEvalZero      &nbsp;
185*10465441SEvalZero    </td>
186*10465441SEvalZero    <td>
187*10465441SEvalZero
188*10465441SEvalZero<p>
189*10465441SEvalZeroCallback function that is called from the webclient code when the HTTP connection to the web server has been closed.
190*10465441SEvalZero<p>
191*10465441SEvalZeroThis function must be implemented by the module that uses the webclient code. <dl compact><dt><b>Examples: </b></dt><dd>
192*10465441SEvalZero<a class="el" href="a00040.html#a296">webclient.c</a>, and <a class="el" href="a00041.html#a322">webclient.h</a>.</dl>
193*10465441SEvalZero<p>
194*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>.    </td>
195*10465441SEvalZero  </tr>
196*10465441SEvalZero</table>
197*10465441SEvalZero<a class="anchor" name="g6b942c1ef22f8cd1a726ef3364c9fbea"></a><!-- doxytag: member="webclient.h::webclient_connected" ref="g6b942c1ef22f8cd1a726ef3364c9fbea" args="(void)" --><p>
198*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
199*10465441SEvalZero  <tr>
200*10465441SEvalZero    <td class="mdRow">
201*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
202*10465441SEvalZero        <tr>
203*10465441SEvalZero          <td class="md" nowrap valign="top">void webclient_connected           </td>
204*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
205*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
206*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
207*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
208*10465441SEvalZero          <td class="md" nowrap></td>
209*10465441SEvalZero        </tr>
210*10465441SEvalZero      </table>
211*10465441SEvalZero    </td>
212*10465441SEvalZero  </tr>
213*10465441SEvalZero</table>
214*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
215*10465441SEvalZero  <tr>
216*10465441SEvalZero    <td>
217*10465441SEvalZero      &nbsp;
218*10465441SEvalZero    </td>
219*10465441SEvalZero    <td>
220*10465441SEvalZero
221*10465441SEvalZero<p>
222*10465441SEvalZeroCallback function that is called from the webclient code when the HTTP connection has been connected to the web server.
223*10465441SEvalZero<p>
224*10465441SEvalZeroThis function must be implemented by the module that uses the webclient code. <dl compact><dt><b>Examples: </b></dt><dd>
225*10465441SEvalZero<a class="el" href="a00040.html#a295">webclient.c</a>, and <a class="el" href="a00041.html#a319">webclient.h</a>.</dl>
226*10465441SEvalZero<p>
227*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>.    </td>
228*10465441SEvalZero  </tr>
229*10465441SEvalZero</table>
230*10465441SEvalZero<a class="anchor" name="gc4b119801e50cc1824498a1cdf9adc37"></a><!-- doxytag: member="webclient.h::webclient_datahandler" ref="gc4b119801e50cc1824498a1cdf9adc37" args="(char *data, u16_t len)" --><p>
231*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
232*10465441SEvalZero  <tr>
233*10465441SEvalZero    <td class="mdRow">
234*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
235*10465441SEvalZero        <tr>
236*10465441SEvalZero          <td class="md" nowrap valign="top">void webclient_datahandler           </td>
237*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
238*10465441SEvalZero          <td class="md" nowrap valign="top">char *&nbsp;</td>
239*10465441SEvalZero          <td class="mdname" nowrap> <em>data</em>, </td>
240*10465441SEvalZero        </tr>
241*10465441SEvalZero        <tr>
242*10465441SEvalZero          <td class="md" nowrap align="right"></td>
243*10465441SEvalZero          <td class="md"></td>
244*10465441SEvalZero          <td class="md" nowrap><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td>
245*10465441SEvalZero          <td class="mdname" nowrap> <em>len</em></td>
246*10465441SEvalZero        </tr>
247*10465441SEvalZero        <tr>
248*10465441SEvalZero          <td class="md"></td>
249*10465441SEvalZero          <td class="md">)&nbsp;</td>
250*10465441SEvalZero          <td class="md" colspan="2"></td>
251*10465441SEvalZero        </tr>
252*10465441SEvalZero      </table>
253*10465441SEvalZero    </td>
254*10465441SEvalZero  </tr>
255*10465441SEvalZero</table>
256*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
257*10465441SEvalZero  <tr>
258*10465441SEvalZero    <td>
259*10465441SEvalZero      &nbsp;
260*10465441SEvalZero    </td>
261*10465441SEvalZero    <td>
262*10465441SEvalZero
263*10465441SEvalZero<p>
264*10465441SEvalZeroCallback function that is called from the webclient code when HTTP data has been received.
265*10465441SEvalZero<p>
266*10465441SEvalZeroThis function must be implemented by the module that uses the webclient code. The function is called from the webclient module when HTTP data has been received. The function is not called when HTTP headers are received, only for the actual data.<p>
267*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>This function is called many times, repetedly, when data is being received, and not once when all data has been received.</dd></dl>
268*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
269*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
270*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>A pointer to the data that has been received. </td></tr>
271*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>The length of the data that has been received. </td></tr>
272*10465441SEvalZero  </table>
273*10465441SEvalZero</dl>
274*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
275*10465441SEvalZero<a class="el" href="a00040.html#a291">webclient.c</a>, and <a class="el" href="a00041.html#a318">webclient.h</a>.</dl>
276*10465441SEvalZero<p>
277*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>.    </td>
278*10465441SEvalZero  </tr>
279*10465441SEvalZero</table>
280*10465441SEvalZero<a class="anchor" name="g41e616d3fcc17e0aabfe8ab45ef0d30f"></a><!-- doxytag: member="webclient.h::webclient_filename" ref="g41e616d3fcc17e0aabfe8ab45ef0d30f" args="(void)" --><p>
281*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
282*10465441SEvalZero  <tr>
283*10465441SEvalZero    <td class="mdRow">
284*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
285*10465441SEvalZero        <tr>
286*10465441SEvalZero          <td class="md" nowrap valign="top">char * webclient_filename           </td>
287*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
288*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
289*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
290*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
291*10465441SEvalZero          <td class="md" nowrap></td>
292*10465441SEvalZero        </tr>
293*10465441SEvalZero      </table>
294*10465441SEvalZero    </td>
295*10465441SEvalZero  </tr>
296*10465441SEvalZero</table>
297*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
298*10465441SEvalZero  <tr>
299*10465441SEvalZero    <td>
300*10465441SEvalZero      &nbsp;
301*10465441SEvalZero    </td>
302*10465441SEvalZero    <td>
303*10465441SEvalZero
304*10465441SEvalZero<p>
305*10465441SEvalZeroObtain the filename of the current HTTP data stream.
306*10465441SEvalZero<p>
307*10465441SEvalZeroThe filename of an HTTP request may be changed by the web server, and may therefore not be the same as when the original GET request was made with <a class="el" href="a00163.html#gf9385ef9ecc74c7d53ff2f15e62bfde3">webclient_get()</a>. This function is used for obtaining the current filename.<p>
308*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the current filename. </dd></dl>
309*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
310*10465441SEvalZero<a class="el" href="a00040.html#a254">webclient.c</a>, and <a class="el" href="a00041.html#a328">webclient.h</a>.</dl>
311*10465441SEvalZero<p>
312*10465441SEvalZeroDefinition at line <a class="el" href="a00180.html#l00093">93</a> of file <a class="el" href="a00180.html">webclient.c</a>.
313*10465441SEvalZero<p>
314*10465441SEvalZeroReferences <a class="el" href="a00181.html#l00062">webclient_state::file</a>.    </td>
315*10465441SEvalZero  </tr>
316*10465441SEvalZero</table>
317*10465441SEvalZero<a class="anchor" name="gf9385ef9ecc74c7d53ff2f15e62bfde3"></a><!-- doxytag: member="webclient.h::webclient_get" ref="gf9385ef9ecc74c7d53ff2f15e62bfde3" args="(char *host, u16_t port, char *file)" --><p>
318*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
319*10465441SEvalZero  <tr>
320*10465441SEvalZero    <td class="mdRow">
321*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
322*10465441SEvalZero        <tr>
323*10465441SEvalZero          <td class="md" nowrap valign="top">unsigned char webclient_get           </td>
324*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
325*10465441SEvalZero          <td class="md" nowrap valign="top">char *&nbsp;</td>
326*10465441SEvalZero          <td class="mdname" nowrap> <em>host</em>, </td>
327*10465441SEvalZero        </tr>
328*10465441SEvalZero        <tr>
329*10465441SEvalZero          <td class="md" nowrap align="right"></td>
330*10465441SEvalZero          <td class="md"></td>
331*10465441SEvalZero          <td class="md" nowrap><a class="el" href="a00153.html#g77570ac4fcab86864fa1916e55676da2">u16_t</a>&nbsp;</td>
332*10465441SEvalZero          <td class="mdname" nowrap> <em>port</em>, </td>
333*10465441SEvalZero        </tr>
334*10465441SEvalZero        <tr>
335*10465441SEvalZero          <td class="md" nowrap align="right"></td>
336*10465441SEvalZero          <td class="md"></td>
337*10465441SEvalZero          <td class="md" nowrap>char *&nbsp;</td>
338*10465441SEvalZero          <td class="mdname" nowrap> <em>file</em></td>
339*10465441SEvalZero        </tr>
340*10465441SEvalZero        <tr>
341*10465441SEvalZero          <td class="md"></td>
342*10465441SEvalZero          <td class="md">)&nbsp;</td>
343*10465441SEvalZero          <td class="md" colspan="2"></td>
344*10465441SEvalZero        </tr>
345*10465441SEvalZero      </table>
346*10465441SEvalZero    </td>
347*10465441SEvalZero  </tr>
348*10465441SEvalZero</table>
349*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
350*10465441SEvalZero  <tr>
351*10465441SEvalZero    <td>
352*10465441SEvalZero      &nbsp;
353*10465441SEvalZero    </td>
354*10465441SEvalZero    <td>
355*10465441SEvalZero
356*10465441SEvalZero<p>
357*10465441SEvalZeroOpen an HTTP connection to a web server and ask for a file using the GET method.
358*10465441SEvalZero<p>
359*10465441SEvalZeroThis function opens an HTTP connection to the specified web server and requests the specified file using the GET method. When the HTTP connection has been connected, the <a class="el" href="a00163.html#g6b942c1ef22f8cd1a726ef3364c9fbea">webclient_connected()</a> callback function is called and when the HTTP data arrives the <a class="el" href="a00163.html#gc4b119801e50cc1824498a1cdf9adc37">webclient_datahandler()</a> callback function is called.<p>
360*10465441SEvalZeroThe callback function <a class="el" href="a00163.html#g23705efb9077187881f094fc9be13bde">webclient_timedout()</a> is called if the web server could not be contacted, and the <a class="el" href="a00163.html#gf11d9915ec12a8cdd9fdcbb5e8fcd5c7">webclient_aborted()</a> callback function is called if the HTTP connection is aborted by the web server.<p>
361*10465441SEvalZeroWhen the HTTP request has been completed and the HTTP connection is closed, the <a class="el" href="a00163.html#gf8f12c820cc08da32aa62898bfc02db3">webclient_closed()</a> callback function will be called.<p>
362*10465441SEvalZero<dl compact><dt><b>Note:</b></dt><dd>If the function is passed a host name, it must already be in the resolver cache in order for the function to connect to the web server. It is therefore up to the calling module to implement the resolver calls and the signal handler used for reporting a resolv query answer.</dd></dl>
363*10465441SEvalZero<dl compact><dt><b>Parameters:</b></dt><dd>
364*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
365*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>host</em>&nbsp;</td><td>A pointer to a string containing either a host name or a numerical IP address in dotted decimal notation (e.g., 192.168.23.1).</td></tr>
366*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>port</em>&nbsp;</td><td>The port number to which to connect, in host byte order.</td></tr>
367*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>file</em>&nbsp;</td><td>A pointer to the name of the file to get.</td></tr>
368*10465441SEvalZero  </table>
369*10465441SEvalZero</dl>
370*10465441SEvalZero<dl compact><dt><b>Return values:</b></dt><dd>
371*10465441SEvalZero  <table border="0" cellspacing="2" cellpadding="0">
372*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>if the host name could not be found in the cache, or if a TCP connection could not be created.</td></tr>
373*10465441SEvalZero    <tr><td valign="top"></td><td valign="top"><em>1</em>&nbsp;</td><td>if the connection was initiated. </td></tr>
374*10465441SEvalZero  </table>
375*10465441SEvalZero</dl>
376*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
377*10465441SEvalZero<a class="el" href="a00040.html#a268">webclient.c</a>, and <a class="el" href="a00041.html#a324">webclient.h</a>.</dl>
378*10465441SEvalZero<p>
379*10465441SEvalZeroDefinition at line <a class="el" href="a00180.html#l00140">140</a> of file <a class="el" href="a00180.html">webclient.c</a>.
380*10465441SEvalZero<p>
381*10465441SEvalZeroReferences <a class="el" href="a00181.html#l00062">webclient_state::file</a>, <a class="el" href="a00181.html#l00061">webclient_state::host</a>, <a class="el" href="a00201.html#l01882">htons()</a>, <a class="el" href="a00172.html#l00069">NULL</a>, <a class="el" href="a00181.html#l00060">webclient_state::port</a>, <a class="el" href="a00172.html#l00396">resolv_lookup()</a>, and <a class="el" href="a00201.html#l00407">uip_connect()</a>.
382*10465441SEvalZero<p>
383*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>.    </td>
384*10465441SEvalZero  </tr>
385*10465441SEvalZero</table>
386*10465441SEvalZero<a class="anchor" name="g0e0ea5f24b77f124ba33bcbc7ede5bfb"></a><!-- doxytag: member="webclient.h::webclient_hostname" ref="g0e0ea5f24b77f124ba33bcbc7ede5bfb" args="(void)" --><p>
387*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
388*10465441SEvalZero  <tr>
389*10465441SEvalZero    <td class="mdRow">
390*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
391*10465441SEvalZero        <tr>
392*10465441SEvalZero          <td class="md" nowrap valign="top">char * webclient_hostname           </td>
393*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
394*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
395*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
396*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
397*10465441SEvalZero          <td class="md" nowrap></td>
398*10465441SEvalZero        </tr>
399*10465441SEvalZero      </table>
400*10465441SEvalZero    </td>
401*10465441SEvalZero  </tr>
402*10465441SEvalZero</table>
403*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
404*10465441SEvalZero  <tr>
405*10465441SEvalZero    <td>
406*10465441SEvalZero      &nbsp;
407*10465441SEvalZero    </td>
408*10465441SEvalZero    <td>
409*10465441SEvalZero
410*10465441SEvalZero<p>
411*10465441SEvalZeroObtain the hostname of the current HTTP data stream.
412*10465441SEvalZero<p>
413*10465441SEvalZeroThe hostname of the web server of an HTTP request may be changed by the web server, and may therefore not be the same as when the original GET request was made with <a class="el" href="a00163.html#gf9385ef9ecc74c7d53ff2f15e62bfde3">webclient_get()</a>. This function is used for obtaining the current hostname.<p>
414*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the current hostname. </dd></dl>
415*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
416*10465441SEvalZero<a class="el" href="a00040.html#a256">webclient.c</a>, and <a class="el" href="a00041.html#a329">webclient.h</a>.</dl>
417*10465441SEvalZero<p>
418*10465441SEvalZeroDefinition at line <a class="el" href="a00180.html#l00099">99</a> of file <a class="el" href="a00180.html">webclient.c</a>.
419*10465441SEvalZero<p>
420*10465441SEvalZeroReferences <a class="el" href="a00181.html#l00061">webclient_state::host</a>.    </td>
421*10465441SEvalZero  </tr>
422*10465441SEvalZero</table>
423*10465441SEvalZero<a class="anchor" name="g4433d3af16ea083a81576d0f18ba57c9"></a><!-- doxytag: member="webclient.h::webclient_mimetype" ref="g4433d3af16ea083a81576d0f18ba57c9" args="(void)" --><p>
424*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
425*10465441SEvalZero  <tr>
426*10465441SEvalZero    <td class="mdRow">
427*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
428*10465441SEvalZero        <tr>
429*10465441SEvalZero          <td class="md" nowrap valign="top">char * webclient_mimetype           </td>
430*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
431*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
432*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
433*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
434*10465441SEvalZero          <td class="md" nowrap></td>
435*10465441SEvalZero        </tr>
436*10465441SEvalZero      </table>
437*10465441SEvalZero    </td>
438*10465441SEvalZero  </tr>
439*10465441SEvalZero</table>
440*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
441*10465441SEvalZero  <tr>
442*10465441SEvalZero    <td>
443*10465441SEvalZero      &nbsp;
444*10465441SEvalZero    </td>
445*10465441SEvalZero    <td>
446*10465441SEvalZero
447*10465441SEvalZero<p>
448*10465441SEvalZeroObtain the MIME type of the current HTTP data stream.
449*10465441SEvalZero<p>
450*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>A pointer to a string contaning the MIME type. The string may be empty if no MIME type was reported by the web server. </dd></dl>
451*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
452*10465441SEvalZero<a class="el" href="a00040.html#a252">webclient.c</a>, and <a class="el" href="a00041.html#a327">webclient.h</a>.</dl>
453*10465441SEvalZero<p>
454*10465441SEvalZeroDefinition at line <a class="el" href="a00180.html#l00087">87</a> of file <a class="el" href="a00180.html">webclient.c</a>.
455*10465441SEvalZero<p>
456*10465441SEvalZeroReferences <a class="el" href="a00181.html#l00069">webclient_state::mimetype</a>.    </td>
457*10465441SEvalZero  </tr>
458*10465441SEvalZero</table>
459*10465441SEvalZero<a class="anchor" name="g2a939aa4fcffabbce1dc1f784a7e0ad3"></a><!-- doxytag: member="webclient.h::webclient_port" ref="g2a939aa4fcffabbce1dc1f784a7e0ad3" args="(void)" --><p>
460*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
461*10465441SEvalZero  <tr>
462*10465441SEvalZero    <td class="mdRow">
463*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
464*10465441SEvalZero        <tr>
465*10465441SEvalZero          <td class="md" nowrap valign="top">unsigned short webclient_port           </td>
466*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
467*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
468*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
469*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
470*10465441SEvalZero          <td class="md" nowrap></td>
471*10465441SEvalZero        </tr>
472*10465441SEvalZero      </table>
473*10465441SEvalZero    </td>
474*10465441SEvalZero  </tr>
475*10465441SEvalZero</table>
476*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
477*10465441SEvalZero  <tr>
478*10465441SEvalZero    <td>
479*10465441SEvalZero      &nbsp;
480*10465441SEvalZero    </td>
481*10465441SEvalZero    <td>
482*10465441SEvalZero
483*10465441SEvalZero<p>
484*10465441SEvalZeroObtain the port number of the current HTTP data stream.
485*10465441SEvalZero<p>
486*10465441SEvalZeroThe port number of an HTTP request may be changed by the web server, and may therefore not be the same as when the original GET request was made with <a class="el" href="a00163.html#gf9385ef9ecc74c7d53ff2f15e62bfde3">webclient_get()</a>. This function is used for obtaining the current port number.<p>
487*10465441SEvalZero<dl compact><dt><b>Returns:</b></dt><dd>The port number of the current HTTP data stream, in host byte order. </dd></dl>
488*10465441SEvalZero<dl compact><dt><b>Examples: </b></dt><dd>
489*10465441SEvalZero<a class="el" href="a00040.html#a258">webclient.c</a>, and <a class="el" href="a00041.html#a330">webclient.h</a>.</dl>
490*10465441SEvalZero<p>
491*10465441SEvalZeroDefinition at line <a class="el" href="a00180.html#l00105">105</a> of file <a class="el" href="a00180.html">webclient.c</a>.
492*10465441SEvalZero<p>
493*10465441SEvalZeroReferences <a class="el" href="a00181.html#l00060">webclient_state::port</a>.    </td>
494*10465441SEvalZero  </tr>
495*10465441SEvalZero</table>
496*10465441SEvalZero<a class="anchor" name="g23705efb9077187881f094fc9be13bde"></a><!-- doxytag: member="webclient.h::webclient_timedout" ref="g23705efb9077187881f094fc9be13bde" args="(void)" --><p>
497*10465441SEvalZero<table class="mdTable" cellpadding="2" cellspacing="0">
498*10465441SEvalZero  <tr>
499*10465441SEvalZero    <td class="mdRow">
500*10465441SEvalZero      <table cellpadding="0" cellspacing="0" border="0">
501*10465441SEvalZero        <tr>
502*10465441SEvalZero          <td class="md" nowrap valign="top">void webclient_timedout           </td>
503*10465441SEvalZero          <td class="md" valign="top">(&nbsp;</td>
504*10465441SEvalZero          <td class="md" nowrap valign="top">void&nbsp;</td>
505*10465441SEvalZero          <td class="mdname1" valign="top" nowrap>          </td>
506*10465441SEvalZero          <td class="md" valign="top">&nbsp;)&nbsp;</td>
507*10465441SEvalZero          <td class="md" nowrap></td>
508*10465441SEvalZero        </tr>
509*10465441SEvalZero      </table>
510*10465441SEvalZero    </td>
511*10465441SEvalZero  </tr>
512*10465441SEvalZero</table>
513*10465441SEvalZero<table cellspacing="5" cellpadding="0" border="0">
514*10465441SEvalZero  <tr>
515*10465441SEvalZero    <td>
516*10465441SEvalZero      &nbsp;
517*10465441SEvalZero    </td>
518*10465441SEvalZero    <td>
519*10465441SEvalZero
520*10465441SEvalZero<p>
521*10465441SEvalZeroCallback function that is called from the webclient code if the HTTP connection to the web server has timed out.
522*10465441SEvalZero<p>
523*10465441SEvalZeroThis function must be implemented by the module that uses the webclient code. <dl compact><dt><b>Examples: </b></dt><dd>
524*10465441SEvalZero<a class="el" href="a00040.html#a299">webclient.c</a>, and <a class="el" href="a00041.html#a320">webclient.h</a>.</dl>
525*10465441SEvalZero<p>
526*10465441SEvalZeroReferenced by <a class="el" href="a00180.html#l00378">webclient_appcall()</a>.    </td>
527*10465441SEvalZero  </tr>
528*10465441SEvalZero</table>
529*10465441SEvalZero<hr size="1"><address style="align: right;"><small>Generated on Mon Jun 12 10:23:02 2006 for uIP 1.0 by&nbsp;
530*10465441SEvalZero<a href="http://www.doxygen.org/index.html">
531*10465441SEvalZero<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
532*10465441SEvalZero</body>
533*10465441SEvalZero</html>
534