ZealOS/docs/Home/Net/Tests/TCPEchoServer.CC.html
TomAwezome 1b75d91002 Fix Mount AHCI Port selection.
Add arg to SATARep to specify drive types to show.
Add checks in AHCIPortInit to verify port signatures, add helper method to get signatures from port.
2021-08-02 16:40:05 -04:00

111 lines
8.2 KiB
HTML
Executable file

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">
<meta name="generator" content="ZealOS V0.13">
<style type="text/css">
body {background-color:#fef1f0;}
.cF0{color:#000000;background-color:#fef1f0;}
.cF1{color:#0148a4;background-color:#fef1f0;}
.cF2{color:#3b7901;background-color:#fef1f0;}
.cF3{color:#057c7e;background-color:#fef1f0;}
.cF4{color:#bb2020;background-color:#fef1f0;}
.cF5{color:#9e42ae;background-color:#fef1f0;}
.cF6{color:#b57901;background-color:#fef1f0;}
.cF7{color:#b2b6af;background-color:#fef1f0;}
.cF8{color:#555753;background-color:#fef1f0;}
.cF9{color:#678fbb;background-color:#fef1f0;}
.cFA{color:#82bc49;background-color:#fef1f0;}
.cFB{color:#0097a2;background-color:#fef1f0;}
.cFC{color:#e26a6a;background-color:#fef1f0;}
.cFD{color:#c671bc;background-color:#fef1f0;}
.cFE{color:#c7ab00;background-color:#fef1f0;}
.cFF{color:#fef1f0;background-color:#fef1f0;}
</style>
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>CTCPSocket *tcp = TCPSocket(AF_INET);
<a name="l2"></a>CTCPSocket *new;
<a name="l3"></a></span><span class=cF1>U8</span><span class=cF0> buffer_size = TCP_MSS;
<a name="l4"></a></span><span class=cF1>U8</span><span class=cF0> *buffer = </span><span class=cF5>CAlloc</span><span class=cF0>(buffer_size);
<a name="l5"></a>
<a name="l6"></a>CSocketAddressIPV4 *socket_addr = </span><span class=cF5>CAlloc</span><span class=cF0>(</span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF0>CSocketAddressIPV4</span><span class=cF7>)</span><span class=cF0>);
<a name="l7"></a>
<a name="l8"></a></span><span class=cF1>U0</span><span class=cF0> TCPTest()
<a name="l9"></a>{
<a name="l10"></a> tcp-&gt;timeout = TCP_TIMEOUT * </span><span class=cFE>3</span><span class=cF0>;
<a name="l11"></a>
<a name="l12"></a> </span><span class=cF5>ClassRep</span><span class=cF0>(tcp);
<a name="l13"></a>
<a name="l14"></a> socket_addr-&gt;port = </span><span class=cF5>EndianU16</span><span class=cF0>(</span><span class=cFE>0xBEEF</span><span class=cF0>);
<a name="l15"></a> socket_addr-&gt;family = AF_INET;
<a name="l16"></a> socket_addr-&gt;address.address = INADDR_ANY;
<a name="l17"></a>
<a name="l18"></a> </span><span class=cF6>&quot;\nTrying to bind socket.\n&quot;</span><span class=cF0>;
<a name="l19"></a> </span><span class=cF1>if</span><span class=cF0> (TCPSocketBind</span><span class=cF7>(</span><span class=cF0>tcp, socket_addr</span><span class=cF7>)</span><span class=cF0> == </span><span class=cFE>0</span><span class=cF0>)
<a name="l20"></a> </span><span class=cF6>&quot;\nSocket bound.\n&quot;</span><span class=cF0>;
<a name="l21"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l22"></a> </span><span class=cF6>&quot;\nFailed to bind socket.\n&quot;</span><span class=cF0>;
<a name="l23"></a>
<a name="l24"></a> </span><span class=cF6>&quot;\nTrying to listen on socket.\n&quot;</span><span class=cF0>;
<a name="l25"></a> </span><span class=cF1>if</span><span class=cF0> (TCPSocketListen</span><span class=cF7>(</span><span class=cF0>tcp, </span><span class=cFE>5</span><span class=cF7>)</span><span class=cF0> == </span><span class=cFE>0</span><span class=cF0>)
<a name="l26"></a> </span><span class=cF6>&quot;\nSocket now listening.\n&quot;</span><span class=cF0>;
<a name="l27"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l28"></a> </span><span class=cF6>&quot;\nFail to listen on socket.\n&quot;</span><span class=cF0>;
<a name="l29"></a>
<a name="l30"></a> </span><span class=cF6>&quot;\nTrying to accept a connection\n&quot;</span><span class=cF0>;
<a name="l31"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF7>(</span><span class=cF0>new = TCPSocketAccept(tcp)</span><span class=cF7>)</span><span class=cF0> != </span><span class=cF3>NULL</span><span class=cF0>)
<a name="l32"></a> </span><span class=cF6>&quot;\nNew socket connected.\n&quot;</span><span class=cF0>;
<a name="l33"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l34"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l35"></a> </span><span class=cF6>&quot;\nFailed to accept.\n&quot;</span><span class=cF0>;
<a name="l36"></a> </span><span class=cF1>return</span><span class=cF0>;
<a name="l37"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l38"></a>
<a name="l39"></a> </span><span class=cF6>&quot;\n\nTrying to Receive data\n&quot;</span><span class=cF0>;
<a name="l40"></a>
<a name="l41"></a> </span><span class=cF1>if</span><span class=cF0> (TCPSocketReceive</span><span class=cF7>(</span><span class=cF0>new, buffer, buffer_size</span><span class=cF7>)</span><span class=cF0> &gt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l42"></a> </span><span class=cF6>&quot;\nData received\n&quot;</span><span class=cF0>;
<a name="l43"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l44"></a> </span><span class=cF6>&quot;\nData not received\n&quot;</span><span class=cF0>;
<a name="l45"></a>
<a name="l46"></a> </span><span class=cF6>&quot;\n\n&quot;</span><span class=cF0>;
<a name="l47"></a>
<a name="l48"></a> </span><span class=cF5>D</span><span class=cF0>(buffer, buffer_size, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l49"></a>
<a name="l50"></a> </span><span class=cF6>&quot;\n\n&quot;</span><span class=cF0>;
<a name="l51"></a>
<a name="l52"></a> </span><span class=cF6>&quot;\nTrying to Send data\n&quot;</span><span class=cF0>;
<a name="l53"></a> </span><span class=cF1>if</span><span class=cF0> (TCPSocketSend</span><span class=cF7>(</span><span class=cF0>new, buffer, buffer_size</span><span class=cF7>)</span><span class=cF0> &gt; </span><span class=cFE>0</span><span class=cF0>) </span><span class=cF2>// echo back</span><span class=cF0>
<a name="l54"></a> </span><span class=cF6>&quot;\nData sent.\n&quot;</span><span class=cF0>;
<a name="l55"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l56"></a> </span><span class=cF6>&quot;\nData not sent\n&quot;</span><span class=cF0>;
<a name="l57"></a>
<a name="l58"></a> </span><span class=cF5>ClassRep</span><span class=cF0>(tcp_globals.bound_socket_tree);
<a name="l59"></a>
<a name="l60"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>5000</span><span class=cF0>);
<a name="l61"></a>
<a name="l62"></a> </span><span class=cF6>&quot;\n\nTrying to close the accepted socket\n&quot;</span><span class=cF0>;
<a name="l63"></a> </span><span class=cF1>if</span><span class=cF0> (TCPSocketClose</span><span class=cF7>(</span><span class=cF0>new</span><span class=cF7>)</span><span class=cF0> == </span><span class=cFE>0</span><span class=cF0>)
<a name="l64"></a> </span><span class=cF6>&quot;\nSocket Closed.&quot;</span><span class=cF0>;
<a name="l65"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l66"></a> </span><span class=cF6>&quot;\nSocket close failed.&quot;</span><span class=cF0>
<a name="l67"></a>
<a name="l68"></a> </span><span class=cF6>&quot;\n\nTrying to close the listening socket\n&quot;</span><span class=cF0>;
<a name="l69"></a> </span><span class=cF1>if</span><span class=cF0> (TCPSocketClose</span><span class=cF7>(</span><span class=cF0>tcp</span><span class=cF7>)</span><span class=cF0> == </span><span class=cFE>0</span><span class=cF0>)
<a name="l70"></a> </span><span class=cF6>&quot;\nSocket Closed.&quot;</span><span class=cF0>;
<a name="l71"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l72"></a> </span><span class=cF6>&quot;\nSocket close failed.&quot;</span><span class=cF0>;
<a name="l73"></a>
<a name="l74"></a>
<a name="l75"></a>
<a name="l76"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>500</span><span class=cF0>);
<a name="l77"></a>
<a name="l78"></a> </span><span class=cF2>//NetStop;</span><span class=cF0>
<a name="l79"></a>
<a name="l80"></a> </span><span class=cF2>//NetStart;</span><span class=cF0>
<a name="l81"></a>}
<a name="l82"></a>
<a name="l83"></a>TCPTest;</span></pre></body>
</html>