⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcp__client__demo_8c-source.html

📁 Freescale mcu OpenTCP-1.0.4.doc.html.zip 文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>/opentcp/demo/tcp_client_demo.c Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="main.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; <a class="qindex" href="examples.html">Examples</a> &nbsp; </center><hr><h1>/opentcp/demo/tcp_client_demo.c</h1><a href="tcp__client__demo_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/*</span>00002 <span class="comment"> *Copyright (c) 2000-2002 Viola Systems Ltd.</span>00003 <span class="comment"> *All rights reserved.</span>00004 <span class="comment"> *</span>00005 <span class="comment"> *Redistribution and use in source and binary forms, with or without </span>00006 <span class="comment"> *modification, are permitted provided that the following conditions </span>00007 <span class="comment"> *are met:</span>00008 <span class="comment"> *</span>00009 <span class="comment"> *1. Redistributions of source code must retain the above copyright </span>00010 <span class="comment"> *notice, this list of conditions and the following disclaimer.</span>00011 <span class="comment"> *</span>00012 <span class="comment"> *2. Redistributions in binary form must reproduce the above copyright </span>00013 <span class="comment"> *notice, this list of conditions and the following disclaimer in the </span>00014 <span class="comment"> *documentation and/or other materials provided with the distribution.</span>00015 <span class="comment"> *</span>00016 <span class="comment"> *3. The end-user documentation included with the redistribution, if </span>00017 <span class="comment"> *any, must include the following acknowledgment:</span>00018 <span class="comment"> *      "This product includes software developed by Viola </span>00019 <span class="comment"> *      Systems (http://www.violasystems.com/)."</span>00020 <span class="comment"> *</span>00021 <span class="comment"> *Alternately, this acknowledgment may appear in the software itself, </span>00022 <span class="comment"> *if and wherever such third-party acknowledgments normally appear.</span>00023 <span class="comment"> *</span>00024 <span class="comment"> *4. The names "OpenTCP" and "Viola Systems" must not be used to </span>00025 <span class="comment"> *endorse or promote products derived from this software without prior </span>00026 <span class="comment"> *written permission. For written permission, please contact </span>00027 <span class="comment"> *opentcp@opentcp.org.</span>00028 <span class="comment"> *</span>00029 <span class="comment"> *5. Products derived from this software may not be called "OpenTCP", </span>00030 <span class="comment"> *nor may "OpenTCP" appear in their name, without prior written </span>00031 <span class="comment"> *permission of the Viola Systems Ltd.</span>00032 <span class="comment"> *</span>00033 <span class="comment"> *THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED </span>00034 <span class="comment"> *WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF </span>00035 <span class="comment"> *MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. </span>00036 <span class="comment"> *IN NO EVENT SHALL VIOLA SYSTEMS LTD. OR ITS CONTRIBUTORS BE LIABLE </span>00037 <span class="comment"> *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR </span>00038 <span class="comment"> *CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF </span>00039 <span class="comment"> *SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR </span>00040 <span class="comment"> *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, </span>00041 <span class="comment"> *WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE </span>00042 <span class="comment"> *OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, </span>00043 <span class="comment"> *EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span>00044 <span class="comment"> *====================================================================</span>00045 <span class="comment"> *</span>00046 <span class="comment"> *OpenTCP is the unified open source TCP/IP stack available on a series </span>00047 <span class="comment"> *of 8/16-bit microcontrollers, please see &lt;http://www.opentcp.org&gt;.</span>00048 <span class="comment"> *</span>00049 <span class="comment"> *For more information on how to network-enable your devices, or how to </span>00050 <span class="comment"> *obtain commercial technical support for OpenTCP, please see </span>00051 <span class="comment"> *&lt;http://www.violasystems.com/&gt;.</span>00052 <span class="comment"> */</span>00053 00075 <span class="preprocessor">#include &lt;<a class="code" href="debug_8h.html">inet/debug.h</a>&gt;</span>00076 <span class="preprocessor">#include &lt;<a class="code" href="datatypes_8h.html">inet/datatypes.h</a>&gt;</span>00077 <span class="preprocessor">#include &lt;<a class="code" href="globalvariables_8h.html">inet/globalvariables.h</a>&gt;</span>00078 <span class="preprocessor">#include &lt;<a class="code" href="system_8h.html">inet/system.h</a>&gt;</span>00079 <span class="preprocessor">#include &lt;<a class="code" href="tcp__ip_8h.html">inet/tcp_ip.h</a>&gt;</span>00080 00081 <span class="comment">/* The applications that use TCP must implement following function stubs                        */</span>00082 <span class="comment">/* void application_name_init (void) - call once when processor starts                          */</span>00083 <span class="comment">/* void application_name_run (void) - call periodically on main loop                            */</span>00084 <span class="comment">/* INT32 application_name_eventlistener (INT8, UINT8, UINT32, UINT32)                           */</span>00085 <span class="comment">/* - called by TCP input process to inform arriving data, errors etc */</span>00086 00087 <span class="comment">/* These will probably go to some include file */</span>00088 <span class="keywordtype">void</span> tcpc_demo_init(<span class="keywordtype">void</span>);00089 <span class="keywordtype">void</span> tcpc_demo_run(<span class="keywordtype">void</span>);00090 INT32 tcpc_demo_eventlistener(INT8 , UINT8 , UINT32 , UINT32 );00091 <a name="l00099"></a><a class="code" href="tcp__client__demo_8c.html#a2">00099</a> INT8 <a class="code" href="tcp__client__demo_8c.html#a2">tcpc_demo_soch</a>;00100 <a name="l00101"></a><a class="code" href="tcp__client__demo_8c.html#a3">00101</a> UINT8 <a class="code" href="tcp__client__demo_8c.html#a3">tcpc_demo_senddata</a>; <a name="l00103"></a><a class="code" href="tcp__client__demo_8c.html#a4">00103</a> UINT8 <a class="code" href="tcp__client__demo_8c.html#a4">tcpc_demo_connect</a>; <a name="l00105"></a><a class="code" href="tcp__client__demo_8c.html#a0">00105</a> <span class="preprocessor">#define TCPC_DEMO_RMT_IP        0xAC100101      </span><a name="l00106"></a><a class="code" href="tcp__client__demo_8c.html#a1">00106</a> <span class="preprocessor">#define TCPC_DEMO_RMT_PORT      5001            </span>00108 <span class="preprocessor"></span><span class="comment">/* Internal function used for sending data to a predefined host */</span>00109 INT16 tcpc_demo_send(<span class="keywordtype">void</span>);00110 00111 <span class="comment">/* Initialize resources needed for the TCP server application */</span>00112 <span class="keywordtype">void</span> tcpc_demo_init(<span class="keywordtype">void</span>)00113 {00114         00115         DEBUGOUT(<span class="stringliteral">"Initializing TCP server application. \r\n"</span>);00116                 00117         <span class="comment">/* Get socket:</span>00118 <span class="comment">         *      TCP_TYPE_CLIENT - type of TCP socket is client (no incomming TCP conn.)</span>00119 <span class="comment">         *      TCP_TOS_NORMAL  - no other type of service implemented so far</span>00120 <span class="comment">         *      TCP_DEF_TOUT    - timeout value in seconds. If for this many seconds</span>00121 <span class="comment">         *              no data is exchanged over the TCP connection the socket will be</span>00122 <span class="comment">         *              closed.</span>00123 <span class="comment">         *      tcpc_demo_eventlistener - pointer to event listener function for</span>00124 <span class="comment">         *              this socket.    </span>00125 <span class="comment">         */</span>00126 00127         <a class="code" href="tcp__client__demo_8c.html#a2">tcpc_demo_soch</a> = <a class="code" href="tcp_8c.html#a3">tcp_getsocket</a>(<a class="code" href="tcp__ip_8h.html#a40">TCP_TYPE_CLIENT</a>, <a class="code" href="tcp__ip_8h.html#a18">TCP_TOS_NORMAL</a>, <a class="code" href="group__opentcp__config.html#a14">TCP_DEF_TOUT</a>, tcpc_demo_eventlistener);00128         00129         <span class="keywordflow">if</span>( <a class="code" href="tcp__client__demo_8c.html#a2">tcpc_demo_soch</a> &lt; 0 )00130         {00131                 DEBUGOUT(<span class="stringliteral">"TCP client unable to get socket. Resetting!!!\r\n"</span>);00132                 <a class="code" href="system_8h.html#a6">RESET_SYSTEM</a>();00133         }00134         00135         <span class="comment">/* for now no data sending */</span>00136         <a class="code" href="tcp__client__demo_8c.html#a3">tcpc_demo_senddata</a>=0;00137         00138         <span class="comment">/* and don't try to connect */</span>00139         <a class="code" href="tcp__client__demo_8c.html#a4">tcpc_demo_connect</a>=0;00140 }00141 00142 <span class="keywordtype">void</span> tcpc_demo_run(<span class="keywordtype">void</span>)00143 {       00144         00145         <span class="comment">/* do maybe some other TCP server app stuff</span>00146 <span class="comment">         * .....</span>00147 <span class="comment">         */</span>00148          00149         <span class="keywordflow">if</span>(tcpc_demo_connect){00150                 <span class="keywordflow">if</span>(<a class="code" href="tcp_8c.html#a6">tcp_connect</a>(<a class="code" href="tcp__client__demo_8c.html#a2">tcpc_demo_soch</a>, <a class="code" href="tcp__client__demo_8c.html#a0">TCPC_DEMO_RMT_IP</a>, <a class="code" href="tcp__client__demo_8c.html#a1">TCPC_DEMO_RMT_PORT</a>,0)&gt;0){00151                         <span class="comment">/* Connection establishing procedure started */</span>00152                         <a class="code" href="tcp__client__demo_8c.html#a4">tcpc_demo_connect</a>=0;00153                         }00154         }00155         00156         <span class="keywordflow">if</span>(tcpc_demo_senddata){00157                 <span class="keywordflow">if</span>(tcpc_demo_send()!=-1)                00158                         <a class="code" href="tcp__client__demo_8c.html#a3">tcpc_demo_senddata</a>=0;00159         }00160 }00161 00162  <span class="comment">/*</span>00163 <span class="comment"> * Event listener invoked when TCP/IP stack receives TCP data for</span>00164 <span class="comment"> * a given socket. Parameters:</span>00165 <span class="comment"> * - cbhandle - handle of the socket this packet is intended for. Check it</span>00166 <span class="comment"> *      just to be sure, but in general case not needed</span>00167 <span class="comment"> * - event - event that is notified. For TCP there are quite a few possible</span>00168 <span class="comment"> *      events, check switch structure below for more information</span>00169 <span class="comment"> * - par1, par2 - parameters who's use depends on the event that is notified</span>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -