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

📄 tcp_8c-source.html

📁 Freescale mcu OpenTCP-1.0.4.doc.html.zip 文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
00261         soc-&gt;<a class="code" href="structtcb.html#m11">tos</a> = 0;00262         soc-&gt;<a class="code" href="structtcb.html#m16">event_listener</a> = 0;00263         soc-&gt;<a class="code" href="structtcb.html#m3">rem_ip</a> = 0;00264         soc-&gt;<a class="code" href="structtcb.html#m4">remport</a> = 0;00265         soc-&gt;<a class="code" href="structtcb.html#m5">locport</a> = 0;00266         soc-&gt;<a class="code" href="structtcb.html#m2">flags</a> = 0;00267         00268         <span class="keywordflow">return</span>(sochandle);00269 00270 }00271 <a name="l00290"></a><a class="code" href="tcp_8c.html#a5">00290</a> INT8 <a class="code" href="tcp_8c.html#a5">tcp_listen</a> (INT8 sochandle, UINT16 port)00291 {00292         <span class="keyword">struct </span><a class="code" href="structtcb.html">tcb</a>* soc;00293 00294         <span class="keywordflow">if</span>( NO_OF_TCPSOCKETS &lt; 0 )00295                 <span class="keywordflow">return</span>(-1);00296         00297         <span class="keywordflow">if</span>( NO_OF_TCPSOCKETS == 0 )00298                 <span class="keywordflow">return</span>(-1);00299         00300         <span class="keywordflow">if</span>( sochandle &gt; NO_OF_TCPSOCKETS ) {00301                 TCP_DEBUGOUT(<span class="stringliteral">"Socket handle non-valid\r\n"</span>);00302                 <span class="keywordflow">return</span>(-1);00303         }00304         00305         <span class="keywordflow">if</span>( sochandle &lt; 0 ) {00306                 TCP_DEBUGOUT(<span class="stringliteral">"Socket handle non-valid\r\n"</span>);00307                 <span class="keywordflow">return</span>(-1);00308         }00309         00310         soc = &amp;tcp_socket[sochandle];           <span class="comment">/* Get referense        */</span>00311                 00312         <span class="keywordflow">if</span>( (soc-&gt;<a class="code" href="structtcb.html#m1">type</a> &amp; <a class="code" href="tcp__ip_8h.html#a39">TCP_TYPE_SERVER</a>) == 0 ) {00313                 TCP_DEBUGOUT(<span class="stringliteral">"Socket has no server properties\r\n"</span>);00314                 <span class="keywordflow">return</span>(-1);00315         }00316         00317         <span class="keywordflow">if</span>( soc-&gt;<a class="code" href="structtcb.html#m16">event_listener</a> == 0) {00318                 TCP_DEBUGOUT(<span class="stringliteral">"ERROR:No event listener function specified\r\n"</span>);00319                 <span class="keywordflow">return</span>(-1);00320         }00321         00322         00323         <span class="keywordflow">if</span>( (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a43">TCP_STATE_RESERVED</a>) &amp;&amp;00324                 (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a45">TCP_STATE_LISTENING</a>)     &amp;&amp;00325                 (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a44">TCP_STATE_CLOSED</a>) &amp;&amp;             00326                 (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a52">TCP_STATE_TIMED_WAIT</a>)            ) {00327                 TCP_DEBUGOUT(<span class="stringliteral">"Not possible to listen, socket on connected state\r\n"</span>);00328                 <span class="keywordflow">return</span>(-1);00329         00330         }00331         00332                         00333         <span class="comment">/* Init socket          */</span>00334                                 00335         soc-&gt;<a class="code" href="structtcb.html#m0">state</a> = <a class="code" href="tcp__ip_8h.html#a45">TCP_STATE_LISTENING</a>;00336         <span class="comment">/*soc-&gt;type = TCP_TYPE_SERVER;*/</span>00337         soc-&gt;<a class="code" href="structtcb.html#m2">flags</a> = 0;00338         soc-&gt;<a class="code" href="structtcb.html#m3">rem_ip</a> = 0;00339         soc-&gt;<a class="code" href="structtcb.html#m4">remport</a> = 0;00340         soc-&gt;<a class="code" href="structtcb.html#m5">locport</a> = port;00341         soc-&gt;<a class="code" href="structtcb.html#m6">send_unacked</a> = 0;00342         soc-&gt;<a class="code" href="structtcb.html#m7">myflags</a> = 0;00343         soc-&gt;<a class="code" href="structtcb.html#m8">send_next</a> = 0xFFFFFFFF;00344         soc-&gt;<a class="code" href="structtcb.html#m9">send_mtu</a> = TCP_DEF_MTU;00345         soc-&gt;<a class="code" href="structtcb.html#m12">receive_next</a> = 0;00346         soc-&gt;<a class="code" href="structtcb.html#m15">retries_left</a> = 0;00347                         00348         TCP_DEBUGOUT(<span class="stringliteral">"TCP listening socket created\r\n"</span>);00349                         00350         <span class="keywordflow">return</span>(sochandle);00351 00352 }00353 00354 <a name="l00377"></a><a class="code" href="tcp_8c.html#a6">00377</a> INT8 <a class="code" href="tcp_8c.html#a6">tcp_connect</a> (INT8 sochandle, UINT32 ip, UINT16 rport, UINT16 myport )00378 {00379         <span class="keyword">struct </span><a class="code" href="structtcb.html">tcb</a>* soc;00380         00381         TCP_DEBUGOUT(<span class="stringliteral">"FUNCTION: tcp_connect\r\n"</span>);00382 00383         <span class="keywordflow">if</span>( NO_OF_TCPSOCKETS &lt; 0 )00384                 <span class="keywordflow">return</span>(-1);00385         00386         <span class="keywordflow">if</span>( NO_OF_TCPSOCKETS == 0 )00387                 <span class="keywordflow">return</span>(-1);00388         00389         <span class="keywordflow">if</span>( sochandle &gt; NO_OF_TCPSOCKETS ) {00390                 TCP_DEBUGOUT(<span class="stringliteral">"Socket handle non-valid\r\n"</span>);00391                 <span class="keywordflow">return</span>(-1);00392         }00393         00394         <span class="keywordflow">if</span>( sochandle &lt; 0 ) {00395                 TCP_DEBUGOUT(<span class="stringliteral">"Socket handle non-valid\r\n"</span>);00396                 <span class="keywordflow">return</span>(-1);00397         }00398         00399         <span class="comment">/* Is the local port defined    */</span>00400         00401         <span class="keywordflow">if</span>( myport == 0 )00402                 myport = <a class="code" href="tcp_8c.html#a89">tcp_getfreeport</a>();00403         00404         <span class="keywordflow">if</span>( myport == 0 )00405                 <span class="keywordflow">return</span>(-1);00406         00407         soc = &amp;tcp_socket[sochandle];           <span class="comment">/* Get referense        */</span>00408         00409         <span class="comment">/* Do we have client properties?        */</span>00410         00411         <span class="keywordflow">if</span>( (soc-&gt;<a class="code" href="structtcb.html#m1">type</a> &amp; <a class="code" href="tcp__ip_8h.html#a40">TCP_TYPE_CLIENT</a>) == 0 ) {00412                 TCP_DEBUGOUT(<span class="stringliteral">"Socket has no client properties\r\n"</span>);00413                 <span class="keywordflow">return</span>(-1);00414         }00415         00416         <span class="keywordflow">if</span>( soc-&gt;<a class="code" href="structtcb.html#m16">event_listener</a> == 0) {00417                 TCP_DEBUGOUT(<span class="stringliteral">"ERROR:No event listener function specified\r\n"</span>);00418                 <span class="keywordflow">return</span>(-1);00419         }00420         00421         <span class="comment">/* Are we on LISTENING, RESERVED or CLOSED state        */</span>00422         00423         <span class="keywordflow">if</span>( (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a43">TCP_STATE_RESERVED</a>) &amp;&amp;00424                 (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a45">TCP_STATE_LISTENING</a>) &amp;&amp;00425                 (soc-&gt;<a class="code" href="structtcb.html#m0">state</a> != <a class="code" href="tcp__ip_8h.html#a44">TCP_STATE_CLOSED</a>)                ) {00426                 TCP_DEBUGOUT(<span class="stringliteral">"Socket on unvalid state to initialize CONNECT\r\n"</span>);00427                 <span class="keywordflow">return</span>(-1);00428         }00429         00430         <span class="comment">/* Then just set parameters and send SYN        */</span>00431         00432         soc-&gt;<a class="code" href="structtcb.html#m3">rem_ip</a> = ip;00433         soc-&gt;<a class="code" href="structtcb.html#m4">remport</a> = rport;00434         soc-&gt;<a class="code" href="structtcb.html#m5">locport</a> = myport;00435         soc-&gt;<a class="code" href="structtcb.html#m2">flags</a> = 0;00436         soc-&gt;<a class="code" href="structtcb.html#m9">send_mtu</a> = TCP_DEF_MTU;00437         00438         <span class="comment">/* get initial sequence number  */</span>00439         00440         soc-&gt;<a class="code" href="structtcb.html#m6">send_unacked</a> = <a class="code" href="tcp_8c.html#a79">tcp_initseq</a>(); 00441         soc-&gt;<a class="code" href="structtcb.html#m8">send_next</a> = soc-&gt;<a class="code" href="structtcb.html#m6">send_unacked</a> + 1;00442         soc-&gt;<a class="code" href="structtcb.html#m7">myflags</a> = TCP_FLAG_SYN;00443         <a class="code" href="tcp_8c.html#a16">tcp_sendcontrol</a>(sochandle);00444         <a class="code" href="tcp_8c.html#a20">tcp_newstate</a>(soc, <a class="code" href="tcp__ip_8h.html#a47">TCP_STATE_SYN_SENT</a>);00445         00446         <span class="keywordflow">return</span>(sochandle);00447 }00448 00449 00450 <a name="l00481"></a><a class="code" href="tcp_8c.html#a7">00481</a> INT16 <a class="code" href="tcp_8c.html#a7">tcp_send</a> (INT8 sockethandle, UINT8* buf, UINT16 blen, UINT16 dlen)00482 {00483         <span class="keyword">struct </span><a class="code" href="structtcb.html">tcb</a>* soc;00484         UINT8 i;00485 00486         00487         TCP_DEBUGOUT(<span class="stringliteral">"Entering to send TCP data packet\r\n"</span>);00488         00489         kick_WD();00490         00491         <span class="keywordflow">if</span>( sockethandle &lt; 0 ) {00492                 TCP_DEBUGOUT(<span class="stringliteral">"ERROR:Socket Handle not valid (&lt;0)\r\n"</span>);00493                 <span class="keywordflow">return</span>(-1);00494         }00495         00496         <span class="keywordflow">if</span>( sockethandle &gt; NO_OF_TCPSOCKETS ) {00497                 TCP_DEBUGOUT(<span class="stringliteral">"ERROR:Socket Handle not valid (&gt;NO_OF_TCPSOCKETS)\r\n"</span>);

⌨️ 快捷键说明

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