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

📄 tcp__server__demo_8c-example.html

📁 Freescale mcu OpenTCP-1.0.4.doc.html.zip 文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<span class="comment"> *      events, check switch structure below for more information</span><span class="comment"> * - par1, par2 - parameters who's use depends on the event that is notified</span><span class="comment"> */</span>INT32 tcps_demo_eventlistener(INT8 cbhandle, UINT8 event, UINT32 par1, UINT32 par2){<span class="comment">/* This function is called by TCP stack to inform about events  */</span>        UINT16 i;                <span class="keywordflow">if</span>( cbhandle != <a class="code" href="tcp__server__demo_8c.html#a1">tcps_demo_soch</a>)         <span class="comment">/* Not our handle       */</span>                <span class="keywordflow">return</span>(-1);                <span class="keywordflow">switch</span>( event ){                                <span class="comment">/* Connection request event. Used by TCP/IP stack to inform</span><span class="comment">                 * the application someone is trying to establish a connection.</span><span class="comment">                 * Server can decide, based on provided IP address and port number,</span><span class="comment">                 * whether to allow or not connection establishment.</span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - remote hosts IP address</span><span class="comment">                 *  - par2 - remote hosts port number</span><span class="comment">                 * </span><span class="comment">                 * Return values from event listener:</span><span class="comment">                 * -1 - do not allow connection to be established (send reset)</span><span class="comment">                 * -2 - do not send any response for now to the SYN packet (let's</span><span class="comment">                 *              think a little before answering)</span><span class="comment">                 * 1  - allow connection to be established</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a54">TCP_EVENT_CONREQ</a>:                        DEBUGOUT(<span class="stringliteral">"Connection request arrived!\r\n"</span>);                                                <span class="comment">/* Enable all connections       */</span>                        <span class="keywordflow">return</span>(1);                                        <span class="keywordflow">break</span>;                                        <span class="comment">/* Connection abort event. Connection on a given socket is beeing </span><span class="comment">                 * aborted for somereason (usually retransmissions are used up or </span><span class="comment">                 * some abnormal situation in communication happened).</span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - remote hosts IP address</span><span class="comment">                 *  - par2 - remote hosts port number</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a57">TCP_EVENT_ABORT</a>:                        DEBUGOUT(<span class="stringliteral">"Connection aborting!\r\n"</span>);                        <span class="keywordflow">break</span>;                                <span class="comment">/* Connection established event - three-way handshaking performed</span><span class="comment">                 * OK and connection is established.</span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - remote hosts IP address</span><span class="comment">                 *  - par2 - remote hosts port number</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a55">TCP_EVENT_CONNECTED</a>:                        DEBUGOUT(<span class="stringliteral">"TCP connection established!\r\n"</span>);                                        <span class="keywordflow">break</span>;                                        <span class="comment">/* Connection closing event. Happens when TCP connection is</span><span class="comment">                 * intentionally close by some side calling close function and</span><span class="comment">                 * initializing proper TCP connection close procedure.</span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - remote hosts IP address</span><span class="comment">                 *  - par2 - remote hosts port number</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a56">TCP_EVENT_CLOSE</a>:                        DEBUGOUT(<span class="stringliteral">"TCP Connection closing...!\r\n"</span>);                        <span class="keywordflow">break</span>;                                        <span class="comment">/* Data acknowledgment event. Happens when data that was</span><span class="comment">                 * previously sent gets acknowledged. This means we can now</span><span class="comment">                 * send some more data! :-)</span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - remote hosts IP address</span><span class="comment">                 *  - par2 - remote hosts port number</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a58">TCP_EVENT_ACK</a>:                        DEBUGOUT(<span class="stringliteral">"Data acknowledged!\r\n"</span>);                        <span class="comment">/* if more data should be sent, adjust variables and</span><span class="comment">                                set tcps_demo_senddata variable */</span>                                                        <span class="keywordflow">break</span>;                                <span class="comment">/* Data received event. Happens when we receive some data over the</span><span class="comment">                 * TCP connection.</span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - number of data bytes received</span><span class="comment">                 *  - par2 = 0</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a60">TCP_EVENT_DATA</a>:                        DEBUGOUT(<span class="stringliteral">"Data arrived!\r\n"</span>);                        <span class="comment">/* read data that was received (and </span><span class="comment">                         * probably do something with it :-)</span><span class="comment">                         */</span>                        <span class="keywordflow">for</span>(i=0;i&lt;par1;i++)                                <a name="a3"></a><a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>();                                                        <span class="comment">/* If needed initialize data sending</span><span class="comment">                         * by setting tcps_demo_senddata variable</span><span class="comment">                         */</span>                        <span class="keywordflow">break</span>;                                        <span class="comment">/* Regenerate data event. Happens when data needs to be</span><span class="comment">                 * retransmitted because of possible loss on the network.</span><span class="comment">                 * Note that THE SAME DATA must be sent over and over again</span><span class="comment">                 * until TCP_EVENT_ACK is generated (for that data)! </span><span class="comment">                 * Parameters:</span><span class="comment">                 *  - par1 - amount of data to regenerate (usually all)</span><span class="comment">                 *      - par2 = 0</span><span class="comment">                 */</span>                <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a59">TCP_EVENT_REGENERATE</a>:                        tcps_demo_send();                        <span class="keywordflow">break</span>;                                <span class="keywordflow">default</span>:                        <span class="keywordflow">return</span>(-1);        }}INT16 tcps_demo_send(<span class="keywordtype">void</span>){        UINT16 i;        <span class="comment">/* first check if data sending is possible (it may be that</span><span class="comment">         * previously sent data is not yet acknowledged)</span><span class="comment">         */</span>        <span class="keywordflow">if</span>(<a name="a4"></a><a class="code" href="group__tcp__app__api.html#a7">tcp_checksend</a>(<a class="code" href="tcp__server__demo_8c.html#a1">tcps_demo_soch</a>) &lt; 0 ){                <span class="comment">/* Not yet */</span>                <span class="keywordflow">return</span> -1;        }                <span class="comment">/* put message in buffer. Message needs to start from TCP_APP_OFFSET</span><span class="comment">         * because TCP/IP stack will put headers in front of the message to</span><span class="comment">         * avoid data copying</span><span class="comment">         */</span>        <span class="keywordflow">for</span>(i=0;i&lt;32;i++)                net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>+i]=<span class="charliteral">'A'</span>+(i%25);        <span class="comment">/* send data */</span>        <span class="keywordflow">return</span> <a name="a5"></a><a class="code" href="group__tcp__app__api.html#a4">tcp_send</a>(<a class="code" href="tcp__server__demo_8c.html#a1">tcps_demo_soch</a>, &amp;net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, 32);}</pre></div><hr><address style="align: right;"><small>Generated on Sun Aug 3 20:32:59 2003 for OpenTCP by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

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