mirror of
https://github.com/TheAlgorithms/C
synced 2025-01-06 01:52:00 +03:00
Documentation for d8804a60ab
This commit is contained in:
parent
ec104fadad
commit
0bdcabc1fd
@ -119,7 +119,7 @@ Include dependency graph for tcp_full_duplex_server.c:</div>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a>   10000</td></tr>
|
||||
<tr class="memdesc:a614217d263be1fb1a5f76e2ff7be19a2"><td class="mdescLeft"> </td><td class="mdescRight">For the type in_addr_t and in_port_t. <a href="../../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">More...</a><br /></td></tr>
|
||||
<tr class="memdesc:a614217d263be1fb1a5f76e2ff7be19a2"><td class="mdescLeft"> </td><td class="mdescRight">For the type in_addr_t and in_port_t For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures. <a href="../../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
@ -149,8 +149,8 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>For the type in_addr_t and in_port_t. </p>
|
||||
<p >For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures For specific bit size values of variables Variable types, several macros, and various functions for performing input and output Variable types, several macros, and various functions for performing general functions Various functions for manipulating arrays of characters For macro definitions related to the creation of sockets For definitions to allow for the porting of BSD programs For miscellaneous symbolic constants and types, and miscellaneous functions </p>
|
||||
<p>For the type in_addr_t and in_port_t For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures. </p>
|
||||
<p >For specific bit size values of variables Variable types, several macros, and various functions for performing input and output Variable types, several macros, and various functions for performing general functions Various functions for manipulating arrays of characters For macro definitions related to the creation of sockets For definitions to allow for the porting of BSD programs For miscellaneous symbolic constants and types, and miscellaneous functions </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -200,7 +200,7 @@ Functions</h2></td></tr>
|
||||
<p >Variable Declarations</p>
|
||||
<p >< socket descriptors - Like file handles but for sockets</p>
|
||||
<p >< character arrays to read and store string data for communication</p>
|
||||
<p >< asic structures for all syscalls and functions that deal with internet addresses. Structures for handling internet addresses</p>
|
||||
<p >< basic structures for all syscalls and functions that deal with internet addresses. Structures for handling internet addresses</p>
|
||||
<p >size of address</p>
|
||||
<p >The TCP socket is created using the socket function</p>
|
||||
<p >AF_INET (Family) - it is an address family that is used to designate the type of addresses that your socket can communicate with</p>
|
||||
@ -238,7 +238,7 @@ Functions</h2></td></tr>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> /// for communication</span></div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">struct </span>sockaddr_in server_addr,</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> client_addr; <span class="comment">///< asic structures for all syscalls and functions that</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> client_addr; <span class="comment">///< basic structures for all syscalls and functions that</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> /// deal with internet addresses. Structures for handling</span></div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> /// internet addresses</span></div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"></span> socklen_t ClientLen; <span class="comment">/// size of address</span></div>
|
||||
@ -376,7 +376,7 @@ Functions</h2></td></tr>
|
||||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span>}</div>
|
||||
<div class="ttc" id="astructpid_html"><div class="ttname"><a href="../../d0/d43/structpid.html">pid</a></div><div class="ttdoc">PID Controller.</div><div class="ttdef"><b>Definition:</b> pid.c:31</div></div>
|
||||
<div class="ttc" id="atcp__full__duplex__server_8c_html_a614217d263be1fb1a5f76e2ff7be19a2"><div class="ttname"><a href="../../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a></div><div class="ttdeci">#define PORT</div><div class="ttdoc">For the type in_addr_t and in_port_t.</div><div class="ttdef"><b>Definition:</b> tcp_full_duplex_server.c:31</div></div>
|
||||
<div class="ttc" id="atcp__full__duplex__server_8c_html_a614217d263be1fb1a5f76e2ff7be19a2"><div class="ttname"><a href="../../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a></div><div class="ttdeci">#define PORT</div><div class="ttdoc">For the type in_addr_t and in_port_t For structures returned by the network database library - format...</div><div class="ttdef"><b>Definition:</b> tcp_full_duplex_server.c:31</div></div>
|
||||
<div class="ttc" id="atcp__full__duplex__server_8c_html_a7e15c8e2885871839fc2b820dfbdb4ce"><div class="ttname"><a href="../../d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a></div><div class="ttdeci">void error()</div><div class="ttdoc">Utility function used to print an error message to stderr.</div><div class="ttdef"><b>Definition:</b> tcp_full_duplex_server.c:39</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
|
@ -119,7 +119,7 @@ Include dependency graph for tcp_full_duplex_client.c:</div>
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a>   10000</td></tr>
|
||||
<tr class="memdesc:a614217d263be1fb1a5f76e2ff7be19a2"><td class="mdescLeft"> </td><td class="mdescRight">For the type in_addr_t and in_port_t. <a href="../../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">More...</a><br /></td></tr>
|
||||
<tr class="memdesc:a614217d263be1fb1a5f76e2ff7be19a2"><td class="mdescLeft"> </td><td class="mdescRight">For the type in_addr_t and in_port_t For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures. <a href="../../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
@ -149,8 +149,8 @@ Functions</h2></td></tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>For the type in_addr_t and in_port_t. </p>
|
||||
<p >For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures For specific bit size values of variables Variable types, several macros, and various functions for performing input and output Variable types, several macros, and various functions for performing general functions Various functions for manipulating arrays of characters For macro definitions related to the creation of sockets For definitions to allow for the porting of BSD programs For miscellaneous symbolic constants and types, and miscellaneous functions </p>
|
||||
<p>For the type in_addr_t and in_port_t For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures. </p>
|
||||
<p >For specific bit size values of variables Variable types, several macros, and various functions for performing input and output Variable types, several macros, and various functions for performing general functions Various functions for manipulating arrays of characters For macro definitions related to the creation of sockets For definitions to allow for the porting of BSD programs For miscellaneous symbolic constants and types, and miscellaneous functions </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -200,7 +200,7 @@ Functions</h2></td></tr>
|
||||
<p >Variable Declarations</p>
|
||||
<p >< socket descriptors - Like file handles but for sockets</p>
|
||||
<p >< character arrays to read and store string data for communication</p>
|
||||
<p >< asic structures for all syscalls and functions that deal with internet addresses. Structures for handling internet addresses</p>
|
||||
<p >< basic structures for all syscalls and functions that deal with internet addresses. Structures for handling internet addresses</p>
|
||||
<p >The TCP socket is created using the socket function.</p>
|
||||
<p >AF_INET (Family) - it is an address family that is used to designate the type of addresses that your socket can communicate with</p>
|
||||
<p >SOCK_STREAM (Type) - Indicates TCP Connection - A stream socket provides for the bidirectional, reliable, sequenced, and unduplicated flow of data without record boundaries. Aside from the bidirectionality of data flow, a pair of connected stream sockets provides an interface nearly identical to pipes.</p>
|
||||
@ -231,7 +231,7 @@ Functions</h2></td></tr>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> /// for communication</span></div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">struct </span>sockaddr_in</div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> server_addr; <span class="comment">///< asic structures for all syscalls and functions that</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> server_addr; <span class="comment">///< basic structures for all syscalls and functions that</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> /// deal with internet addresses. Structures for handling</span></div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> /// internet addresses</span></div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"></span><span class="comment"></span> </div>
|
||||
@ -347,7 +347,7 @@ Functions</h2></td></tr>
|
||||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span>}</div>
|
||||
<div class="ttc" id="astructpid_html"><div class="ttname"><a href="../../d0/d43/structpid.html">pid</a></div><div class="ttdoc">PID Controller.</div><div class="ttdef"><b>Definition:</b> pid.c:31</div></div>
|
||||
<div class="ttc" id="atcp__full__duplex__client_8c_html_a614217d263be1fb1a5f76e2ff7be19a2"><div class="ttname"><a href="../../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a></div><div class="ttdeci">#define PORT</div><div class="ttdoc">For the type in_addr_t and in_port_t.</div><div class="ttdef"><b>Definition:</b> tcp_full_duplex_client.c:31</div></div>
|
||||
<div class="ttc" id="atcp__full__duplex__client_8c_html_a614217d263be1fb1a5f76e2ff7be19a2"><div class="ttname"><a href="../../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a></div><div class="ttdeci">#define PORT</div><div class="ttdoc">For the type in_addr_t and in_port_t For structures returned by the network database library - format...</div><div class="ttdef"><b>Definition:</b> tcp_full_duplex_client.c:31</div></div>
|
||||
<div class="ttc" id="atcp__full__duplex__client_8c_html_a7e15c8e2885871839fc2b820dfbdb4ce"><div class="ttname"><a href="../../d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a></div><div class="ttdeci">void error()</div><div class="ttdoc">Utility function used to print an error message to stderr.</div><div class="ttdef"><b>Definition:</b> tcp_full_duplex_client.c:39</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
|
@ -102,6 +102,8 @@ Audio</h1>
|
||||
Client Server</h1>
|
||||
<ul>
|
||||
<li><a href="https://github.com/TheAlgorithms/C/blob/master/client_server/client.c" target="_blank">Client</a></li>
|
||||
<li><a href="https://github.com/TheAlgorithms/C/blob/master/client_server/remote_command_exec_udp_client.c" target="_blank">Remote Command Exec Udp Client</a></li>
|
||||
<li><a href="https://github.com/TheAlgorithms/C/blob/master/client_server/remote_command_exec_udp_server.c" target="_blank">Remote Command Exec Udp Server</a></li>
|
||||
<li><a href="https://github.com/TheAlgorithms/C/blob/master/client_server/server.c" target="_blank">Server</a></li>
|
||||
<li><a href="https://github.com/TheAlgorithms/C/blob/master/client_server/tcp_full_duplex_client.c" target="_blank">Tcp Full Duplex Client</a></li>
|
||||
<li><a href="https://github.com/TheAlgorithms/C/blob/master/client_server/tcp_full_duplex_server.c" target="_blank">Tcp Full Duplex Server</a></li>
|
||||
|
14
d7/d1f/remote__command__exec__udp__client_8c__incl.map
Normal file
14
d7/d1f/remote__command__exec__udp__client_8c__incl.map
Normal file
@ -0,0 +1,14 @@
|
||||
<map id="client_server/remote_command_exec_udp_client.c" name="client_server/remote_command_exec_udp_client.c">
|
||||
<area shape="rect" id="node1" title="Client-side implementation of [Remote Command Execution Using UDP](https://www.imperva...." alt="" coords="421,5,619,47"/>
|
||||
<area shape="rect" id="node2" title=" " alt="" coords="5,95,88,121"/>
|
||||
<area shape="rect" id="node3" title=" " alt="" coords="113,95,175,121"/>
|
||||
<area shape="rect" id="node4" title=" " alt="" coords="199,95,265,121"/>
|
||||
<area shape="rect" id="node5" title=" " alt="" coords="289,95,375,121"/>
|
||||
<area shape="rect" id="node6" title=" " alt="" coords="399,95,465,121"/>
|
||||
<area shape="rect" id="node7" title=" " alt="" coords="489,95,551,121"/>
|
||||
<area shape="rect" id="node8" title=" " alt="" coords="575,95,639,121"/>
|
||||
<area shape="rect" id="node9" title=" " alt="" coords="663,95,729,121"/>
|
||||
<area shape="rect" id="node10" title=" " alt="" coords="753,95,850,121"/>
|
||||
<area shape="rect" id="node11" title=" " alt="" coords="875,95,965,121"/>
|
||||
<area shape="rect" id="node12" title=" " alt="" coords="990,95,1058,121"/>
|
||||
</map>
|
1
d7/d1f/remote__command__exec__udp__client_8c__incl.md5
Normal file
1
d7/d1f/remote__command__exec__udp__client_8c__incl.md5
Normal file
@ -0,0 +1 @@
|
||||
93a3d0d941ceedc419cea68f5d62d756
|
276
d7/d1f/remote__command__exec__udp__client_8c__incl.svg
Normal file
276
d7/d1f/remote__command__exec__udp__client_8c__incl.svg
Normal file
@ -0,0 +1,276 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.50.0 (20211204.2007)
|
||||
-->
|
||||
<!-- Title: client_server/remote_command_exec_udp_client.c Pages: 1 -->
|
||||
<!--zoomable 95 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 798;
|
||||
var viewHeight = 95;
|
||||
var sectionId = 'dynsection-0';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>client_server/remote_command_exec_udp_client.c</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-91 793.5,-91 793.5,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Client-side implementation of [Remote Command Execution Using UDP](https://www.imperva....">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="311.5,-56.5 311.5,-86.5 460.5,-86.5 460.5,-56.5 311.5,-56.5"/>
|
||||
<text text-anchor="start" x="319.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">client_server/remote</text>
|
||||
<text text-anchor="middle" x="386" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_command_exec_udp_client.c</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="0,-0.5 0,-19.5 62,-19.5 62,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="31" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">arpa/inet.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M311.31,-59.87C249.71,-50.79 159.82,-36.84 72.49,-20.2"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="72.88,-16.71 62.4,-18.26 71.57,-23.58 72.88,-16.71"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="80.5,-0.5 80.5,-19.5 127.5,-19.5 127.5,-0.5 80.5,-0.5"/>
|
||||
<text text-anchor="middle" x="104" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">errno.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M311.29,-56.92C263.87,-47.95 201.03,-35.42 137.5,-20.24"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="138.26,-16.82 127.71,-17.88 136.62,-23.63 138.26,-16.82"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="145.5,-0.5 145.5,-19.5 194.5,-19.5 194.5,-0.5 145.5,-0.5"/>
|
||||
<text text-anchor="middle" x="170" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netdb.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M335.08,-56.47C294.79,-45.37 239.61,-30.17 204.37,-20.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="205.13,-17.05 194.56,-17.76 203.27,-23.79 205.13,-17.05"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="212.5,-0.5 212.5,-19.5 277.5,-19.5 277.5,-0.5 212.5,-0.5"/>
|
||||
<text text-anchor="middle" x="245" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netinet/in.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M352.58,-56.4C329.03,-46.46 297.76,-33.26 275.01,-23.66"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="276.09,-20.32 265.52,-19.66 273.37,-26.77 276.09,-20.32"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="295.5,-0.5 295.5,-19.5 344.5,-19.5 344.5,-0.5 295.5,-0.5"/>
|
||||
<text text-anchor="middle" x="320" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M370.36,-56.4C360.37,-47.4 347.42,-35.72 337.15,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="339.37,-23.75 329.6,-19.66 334.69,-28.95 339.37,-23.75"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="363,-0.5 363,-19.5 409,-19.5 409,-0.5 363,-0.5"/>
|
||||
<text text-anchor="middle" x="386" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdio.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node1->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M386,-56.4C386,-48.47 386,-38.46 386,-29.86"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="389.5,-29.66 386,-19.66 382.5,-29.66 389.5,-29.66"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="427,-0.5 427,-19.5 475,-19.5 475,-0.5 427,-0.5"/>
|
||||
<text text-anchor="middle" x="451" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdlib.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M401.4,-56.4C411.24,-47.4 423.99,-35.72 434.11,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="436.53,-28.99 441.54,-19.66 431.8,-23.83 436.53,-28.99"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="493.5,-0.5 493.5,-19.5 542.5,-19.5 542.5,-0.5 493.5,-0.5"/>
|
||||
<text text-anchor="middle" x="518" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">string.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node9 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M417.28,-56.4C439.23,-46.51 468.34,-33.38 489.62,-23.79"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="491.11,-26.96 498.79,-19.66 488.24,-20.58 491.11,-26.96"/>
|
||||
</g>
|
||||
<!-- Node10 -->
|
||||
<g id="node10" class="node">
|
||||
<title>Node10</title>
|
||||
<g id="a_node10"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="560.5,-0.5 560.5,-19.5 633.5,-19.5 633.5,-0.5 560.5,-0.5"/>
|
||||
<text text-anchor="middle" x="597" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/socket.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node10 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node1->Node10</title>
|
||||
<path fill="none" stroke="midnightblue" d="M435.74,-56.47C472.77,-46.03 522.68,-31.96 557.12,-22.25"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="558.16,-25.59 566.83,-19.51 556.26,-18.85 558.16,-25.59"/>
|
||||
</g>
|
||||
<!-- Node11 -->
|
||||
<g id="node11" class="node">
|
||||
<title>Node11</title>
|
||||
<g id="a_node11"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="652,-0.5 652,-19.5 720,-19.5 720,-0.5 652,-0.5"/>
|
||||
<text text-anchor="middle" x="686" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/types.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node11 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node1->Node11</title>
|
||||
<path fill="none" stroke="midnightblue" d="M458.61,-56.48C507.69,-46.94 574.25,-33.9 641.77,-20.23"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="642.64,-23.63 651.74,-18.21 641.24,-16.77 642.64,-23.63"/>
|
||||
</g>
|
||||
<!-- Node12 -->
|
||||
<g id="node12" class="node">
|
||||
<title>Node12</title>
|
||||
<g id="a_node12"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="738.5,-0.5 738.5,-19.5 789.5,-19.5 789.5,-0.5 738.5,-0.5"/>
|
||||
<text text-anchor="middle" x="764" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">unistd.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node12 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Node1->Node12</title>
|
||||
<path fill="none" stroke="midnightblue" d="M460.66,-61.81C528.09,-53.44 630.2,-39.46 728.36,-19.93"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="729.34,-23.3 738.46,-17.9 727.96,-16.44 729.34,-23.3"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="remote__command__exec__udp__client_8c__incl_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
188
d7/d1f/remote__command__exec__udp__client_8c__incl_org.svg
Normal file
188
d7/d1f/remote__command__exec__udp__client_8c__incl_org.svg
Normal file
@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.50.0 (20211204.2007)
|
||||
-->
|
||||
<!-- Title: client_server/remote_command_exec_udp_client.c Pages: 1 -->
|
||||
<svg width="798pt" height="95pt"
|
||||
viewBox="0.00 0.00 797.50 95.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 91)">
|
||||
<title>client_server/remote_command_exec_udp_client.c</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-91 793.5,-91 793.5,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Client-side implementation of [Remote Command Execution Using UDP](https://www.imperva....">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="311.5,-56.5 311.5,-86.5 460.5,-86.5 460.5,-56.5 311.5,-56.5"/>
|
||||
<text text-anchor="start" x="319.5" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">client_server/remote</text>
|
||||
<text text-anchor="middle" x="386" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_command_exec_udp_client.c</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="0,-0.5 0,-19.5 62,-19.5 62,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="31" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">arpa/inet.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M311.31,-59.87C249.71,-50.79 159.82,-36.84 72.49,-20.2"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="72.88,-16.71 62.4,-18.26 71.57,-23.58 72.88,-16.71"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="80.5,-0.5 80.5,-19.5 127.5,-19.5 127.5,-0.5 80.5,-0.5"/>
|
||||
<text text-anchor="middle" x="104" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">errno.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M311.29,-56.92C263.87,-47.95 201.03,-35.42 137.5,-20.24"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="138.26,-16.82 127.71,-17.88 136.62,-23.63 138.26,-16.82"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="145.5,-0.5 145.5,-19.5 194.5,-19.5 194.5,-0.5 145.5,-0.5"/>
|
||||
<text text-anchor="middle" x="170" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netdb.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M335.08,-56.47C294.79,-45.37 239.61,-30.17 204.37,-20.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="205.13,-17.05 194.56,-17.76 203.27,-23.79 205.13,-17.05"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="212.5,-0.5 212.5,-19.5 277.5,-19.5 277.5,-0.5 212.5,-0.5"/>
|
||||
<text text-anchor="middle" x="245" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netinet/in.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M352.58,-56.4C329.03,-46.46 297.76,-33.26 275.01,-23.66"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="276.09,-20.32 265.52,-19.66 273.37,-26.77 276.09,-20.32"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="295.5,-0.5 295.5,-19.5 344.5,-19.5 344.5,-0.5 295.5,-0.5"/>
|
||||
<text text-anchor="middle" x="320" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M370.36,-56.4C360.37,-47.4 347.42,-35.72 337.15,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="339.37,-23.75 329.6,-19.66 334.69,-28.95 339.37,-23.75"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="363,-0.5 363,-19.5 409,-19.5 409,-0.5 363,-0.5"/>
|
||||
<text text-anchor="middle" x="386" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdio.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node1->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M386,-56.4C386,-48.47 386,-38.46 386,-29.86"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="389.5,-29.66 386,-19.66 382.5,-29.66 389.5,-29.66"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="427,-0.5 427,-19.5 475,-19.5 475,-0.5 427,-0.5"/>
|
||||
<text text-anchor="middle" x="451" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdlib.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M401.4,-56.4C411.24,-47.4 423.99,-35.72 434.11,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="436.53,-28.99 441.54,-19.66 431.8,-23.83 436.53,-28.99"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="493.5,-0.5 493.5,-19.5 542.5,-19.5 542.5,-0.5 493.5,-0.5"/>
|
||||
<text text-anchor="middle" x="518" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">string.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node9 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M417.28,-56.4C439.23,-46.51 468.34,-33.38 489.62,-23.79"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="491.11,-26.96 498.79,-19.66 488.24,-20.58 491.11,-26.96"/>
|
||||
</g>
|
||||
<!-- Node10 -->
|
||||
<g id="node10" class="node">
|
||||
<title>Node10</title>
|
||||
<g id="a_node10"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="560.5,-0.5 560.5,-19.5 633.5,-19.5 633.5,-0.5 560.5,-0.5"/>
|
||||
<text text-anchor="middle" x="597" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/socket.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node10 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node1->Node10</title>
|
||||
<path fill="none" stroke="midnightblue" d="M435.74,-56.47C472.77,-46.03 522.68,-31.96 557.12,-22.25"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="558.16,-25.59 566.83,-19.51 556.26,-18.85 558.16,-25.59"/>
|
||||
</g>
|
||||
<!-- Node11 -->
|
||||
<g id="node11" class="node">
|
||||
<title>Node11</title>
|
||||
<g id="a_node11"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="652,-0.5 652,-19.5 720,-19.5 720,-0.5 652,-0.5"/>
|
||||
<text text-anchor="middle" x="686" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/types.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node11 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node1->Node11</title>
|
||||
<path fill="none" stroke="midnightblue" d="M458.61,-56.48C507.69,-46.94 574.25,-33.9 641.77,-20.23"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="642.64,-23.63 651.74,-18.21 641.24,-16.77 642.64,-23.63"/>
|
||||
</g>
|
||||
<!-- Node12 -->
|
||||
<g id="node12" class="node">
|
||||
<title>Node12</title>
|
||||
<g id="a_node12"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="738.5,-0.5 738.5,-19.5 789.5,-19.5 789.5,-0.5 738.5,-0.5"/>
|
||||
<text text-anchor="middle" x="764" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">unistd.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node12 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Node1->Node12</title>
|
||||
<path fill="none" stroke="midnightblue" d="M460.66,-61.81C528.09,-53.44 630.2,-39.46 728.36,-19.93"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="729.34,-23.3 738.46,-17.9 727.96,-16.44 729.34,-23.3"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.2 KiB |
344
d9/ddd/remote__command__exec__udp__client_8c.html
Normal file
344
d9/ddd/remote__command__exec__udp__client_8c.html
Normal file
@ -0,0 +1,344 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C: client_server/remote_command_exec_udp_client.c File Reference</title>
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../jquery.js"></script>
|
||||
<script type="text/javascript" src="../../dynsections.js"></script>
|
||||
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtreedata.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Algorithms_in_C<span id="projectnumber"> 1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('d9/ddd/remote__command__exec__udp__client_8c.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle"><div class="title">remote_command_exec_udp_client.c File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Client-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>)
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <arpa/inet.h></code><br />
|
||||
<code>#include <errno.h></code><br />
|
||||
<code>#include <netdb.h></code><br />
|
||||
<code>#include <netinet/in.h></code><br />
|
||||
<code>#include <stdint.h></code><br />
|
||||
<code>#include <stdio.h></code><br />
|
||||
<code>#include <stdlib.h></code><br />
|
||||
<code>#include <string.h></code><br />
|
||||
<code>#include <sys/socket.h></code><br />
|
||||
<code>#include <sys/types.h></code><br />
|
||||
<code>#include <unistd.h></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for remote_command_exec_udp_client.c:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../d7/d1f/remote__command__exec__udp__client_8c__incl.svg" width="100%" height="395"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a>   10000</td></tr>
|
||||
<tr class="memdesc:a614217d263be1fb1a5f76e2ff7be19a2"><td class="mdescLeft"> </td><td class="mdescRight">For the type in_addr_t and in_port_t. <a href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a7e15c8e2885871839fc2b820dfbdb4ce"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a> ()</td></tr>
|
||||
<tr class="memdesc:a7e15c8e2885871839fc2b820dfbdb4ce"><td class="mdescLeft"> </td><td class="mdescRight">Utility function used to print an error message to <code>stderr</code>. <a href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">More...</a><br /></td></tr>
|
||||
<tr class="separator:a7e15c8e2885871839fc2b820dfbdb4ce"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d9/ddd/remote__command__exec__udp__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
|
||||
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft"> </td><td class="mdescRight">Main function. <a href="../../d9/ddd/remote__command__exec__udp__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
|
||||
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p >Client-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>) </p>
|
||||
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/NVombat" target="_blank">NVombat</a> </dd></dl>
|
||||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../dd/d79/remote__command__exec__udp__server_8c.html" title="Server-side implementation of [Remote Command Execution Using UDP](https://www.imperva....">remote_command_exec_udp_server.c</a></dd></dl>
|
||||
<p>The algorithm is based on the simple UDP client and server model. It runs an infinite loop which takes user input and sends it to the server for execution. The server receives the commands and executes them until the user exits the loop. In this way, Remote Command Execution using UDP is shown using the server-client model & socket programming </p>
|
||||
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a id="a614217d263be1fb1a5f76e2ff7be19a2" name="a614217d263be1fb1a5f76e2ff7be19a2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a614217d263be1fb1a5f76e2ff7be19a2">◆ </a></span>PORT</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define PORT   10000</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>For the type in_addr_t and in_port_t. </p>
|
||||
<p >To indicate what went wrong if an error occurs For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures For specific bit size values of variables Variable types, several macros, and various functions for performing input and output Variable types, several macros, and various functions for performing general functions Various functions for manipulating arrays of characters For macro definitions related to the creation of sockets For definitions to allow for the porting of BSD programs For miscellaneous symbolic constants and types, and miscellaneous functions </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a7e15c8e2885871839fc2b820dfbdb4ce" name="a7e15c8e2885871839fc2b820dfbdb4ce"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7e15c8e2885871839fc2b820dfbdb4ce">◆ </a></span>error()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void error </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Utility function used to print an error message to <code>stderr</code>. </p>
|
||||
<p >It prints <code>str</code> and an implementation-defined error message corresponding to the global variable <code>errno</code>. </p><dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>{</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> perror(<span class="stringliteral">"Socket Creation Failed"</span>);</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> exit(EXIT_FAILURE);</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">◆ </a></span>main()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int main </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Main function. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<p >Variable Declarations</p>
|
||||
<p >< socket descriptors - Like file handles but for sockets</p>
|
||||
<p >< character arrays to read and store string data for communication</p>
|
||||
<p >< basic structures for all syscalls and functions that deal with internet addresses. Structures for handling internet addresses</p>
|
||||
<p >< length of socket</p>
|
||||
<p >The UDP socket is created using the socket function.</p>
|
||||
<p >AF_INET (Family) - it is an address family that is used to designate the type of addresses that your socket can communicate with</p>
|
||||
<p >SOCK_DGRAM (Type) - Indicates UDP Connection - UDP does not require the source and destination to establish a three-way handshake before transmission takes place. Additionally, there is no need for an end-to-end connection</p>
|
||||
<p >0 (Protocol) - Specifies a particular protocol to be used with the socket. Specifying a protocol of 0 causes socket() to use an unspecified default protocol appropriate for the requested socket type.</p>
|
||||
<p >Server Address Information</p>
|
||||
<p >The bzero() function erases the data in the n bytes of the memory starting at the location pointed to, by writing zeros (bytes containing '\0') to that area.</p>
|
||||
<p >We bind the server_addr to the internet address and port number thus giving our socket an identity with an address and port where it can listen for connections</p>
|
||||
<p >htons - The htons() function translates a short integer from host byte order to network byte order</p>
|
||||
<p >htonl - The htonl() function translates a long integer from host byte order to network byte order</p>
|
||||
<p >These functions are necessary so that the binding of address and port takes place with data in the correct format</p>
|
||||
<p >Connects the client to the server address using the socket descriptor This enables the two to communicate and exchange data</p>
|
||||
<p >Communication between client and server</p>
|
||||
<p >The client sends data to the server after taking the input from the user</p>
|
||||
<p >The client then receives a response from the server when the command has been executed</p>
|
||||
<p >The server and client can communicate indefinitely till one of them exits the connection</p>
|
||||
<p >The client sends the server a command which it executes thus showing remote command execution using UDP</p>
|
||||
<p >Close Socket</p>
|
||||
<div class="fragment"><div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>{<span class="comment"></span></div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> /** Variable Declarations */</span></div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> uint32_t</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> sockfd; <span class="comment">///< socket descriptors - Like file handles but for sockets</span></div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">char</span> send_msg[1024],</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> recv_msg[1024]; <span class="comment">///< character arrays to read and store string data</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment"> /// for communication</span></div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">struct </span>sockaddr_in</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> server_addr; <span class="comment">///< basic structures for all syscalls and functions that</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"> /// deal with internet addresses. Structures for handling</span></div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment"> /// internet addresses</span></div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"></span> socklen_t serverLength = <span class="keyword">sizeof</span>(server_addr); <span class="comment">///< length of socket</span></div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * The UDP socket is created using the socket function.</span></div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> * AF_INET (Family) - it is an address family that is used to designate the</span></div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> * type of addresses that your socket can communicate with</span></div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> * SOCK_DGRAM (Type) - Indicates UDP Connection - UDP does not require the</span></div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"> * source and destination to establish a three-way handshake before</span></div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> * transmission takes place. Additionally, there is no need for an</span></div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * end-to-end connection</span></div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * 0 (Protocol) - Specifies a particular protocol to be used with the</span></div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * socket. Specifying a protocol of 0 causes socket() to use an unspecified</span></div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> * default protocol appropriate for the requested socket type.</span></div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">if</span> ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> {</div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <a class="code hl_function" href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a>();</div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment"> * Server Address Information</span></div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment"> * The bzero() function erases the data in the n bytes of the memory</span></div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"> * starting at the location pointed to, by writing zeros (bytes</span></div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * containing '\0') to that area.</span></div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> * We bind the server_addr to the internet address and port number thus</span></div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> * giving our socket an identity with an address and port where it can</span></div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> * listen for connections</span></div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * htons - The htons() function translates a short integer from host byte</span></div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * order to network byte order</span></div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> * htonl - The htonl() function translates a long integer from host byte</span></div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> * order to network byte order</span></div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> * These functions are necessary so that the binding of address and port</span></div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * takes place with data in the correct format</span></div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> bzero(&server_addr, <span class="keyword">sizeof</span>(server_addr));</div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> server_addr.sin_family = AF_INET;</div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> server_addr.sin_port = htons(<a class="code hl_define" href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a>);</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> server_addr.sin_addr.s_addr = htonl(INADDR_ANY);</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> printf(<span class="stringliteral">"Client is running...\n"</span>);</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> * Connects the client to the server address using the socket descriptor</span></div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> * This enables the two to communicate and exchange data</span></div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> connect(sockfd, (<span class="keyword">struct</span> sockaddr *)&server_addr, <span class="keyword">sizeof</span>(server_addr));</div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> printf(<span class="stringliteral">"Client is Connected Successfully...\n"</span>);</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> * Communication between client and server</span></div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> * The client sends data to the server after taking the input</span></div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> * from the user</span></div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> * The client then receives a response from the server when the</span></div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> * command has been executed</span></div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * The server and client can communicate indefinitely till one of them</span></div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * exits the connection</span></div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> * The client sends the server a command which it executes thus showing</span></div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> * remote command execution using UDP</span></div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">while</span> (1)</div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> {</div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> printf(<span class="stringliteral">"\nEnter Command To Be Executed Remotely: \n"</span>);</div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> fgets(send_msg, <span class="keyword">sizeof</span>(send_msg), stdin);</div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> sendto(sockfd, send_msg, <span class="keyword">sizeof</span>(send_msg), 0,</div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> (<span class="keyword">struct</span> sockaddr *)&server_addr, serverLength);</div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> recvfrom(sockfd, recv_msg, <span class="keyword">sizeof</span>(recv_msg), 0,</div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> (<span class="keyword">struct</span> sockaddr *)&server_addr, &serverLength);</div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> printf(<span class="stringliteral">"Server Reply: %s\n"</span>, recv_msg);</div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> /// Close Socket</span></div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"></span> close(sockfd);</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> printf(<span class="stringliteral">"Client is offline...\n"</span>);</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span>}</div>
|
||||
<div class="ttc" id="aremote__command__exec__udp__client_8c_html_a614217d263be1fb1a5f76e2ff7be19a2"><div class="ttname"><a href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a></div><div class="ttdeci">#define PORT</div><div class="ttdoc">For the type in_addr_t and in_port_t.</div><div class="ttdef"><b>Definition:</b> remote_command_exec_udp_client.c:29</div></div>
|
||||
<div class="ttc" id="aremote__command__exec__udp__client_8c_html_a7e15c8e2885871839fc2b820dfbdb4ce"><div class="ttname"><a href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a></div><div class="ttdeci">void error()</div><div class="ttdoc">Utility function used to print an error message to stderr.</div><div class="ttdef"><b>Definition:</b> remote_command_exec_udp_client.c:37</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../d9/ddd/remote__command__exec__udp__client_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="158" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_d20ad0b8de644c123692ba5582cc7a7b.html">client_server</a></li><li class="navelem"><a class="el" href="../../d9/ddd/remote__command__exec__udp__client_8c.html">remote_command_exec_udp_client.c</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
6
d9/ddd/remote__command__exec__udp__client_8c.js
Normal file
6
d9/ddd/remote__command__exec__udp__client_8c.js
Normal file
@ -0,0 +1,6 @@
|
||||
var remote__command__exec__udp__client_8c =
|
||||
[
|
||||
[ "PORT", "d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2", null ],
|
||||
[ "error", "d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce", null ],
|
||||
[ "main", "d9/ddd/remote__command__exec__udp__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ]
|
||||
];
|
@ -0,0 +1,4 @@
|
||||
<map id="main" name="main">
|
||||
<area shape="rect" id="node1" title="Main function." alt="" coords="5,5,56,32"/>
|
||||
<area shape="rect" id="node2" href="$d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce" title="Utility function used to print an error message to stderr." alt="" coords="104,5,152,32"/>
|
||||
</map>
|
@ -0,0 +1 @@
|
||||
29ba3a71bdf0c82099a55e551b9b5ab8
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.50.0 (20211204.2007)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="118pt" height="28pt"
|
||||
viewBox="0.00 0.00 118.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
|
||||
<title>main</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 114,-24 114,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Main function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 38,-19.5 38,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="19" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce" target="_top" xlink:title="Utility function used to print an error message to stderr.">
|
||||
<polygon fill="white" stroke="black" points="74,-0.5 74,-19.5 110,-19.5 110,-0.5 74,-0.5"/>
|
||||
<text text-anchor="middle" x="92" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.28,-10C46.03,-10 55.21,-10 63.73,-10"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="64,-13.5 74,-10 64,-6.5 64,-13.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
14
da/d10/remote__command__exec__udp__server_8c__incl.map
Normal file
14
da/d10/remote__command__exec__udp__server_8c__incl.map
Normal file
@ -0,0 +1,14 @@
|
||||
<map id="client_server/remote_command_exec_udp_server.c" name="client_server/remote_command_exec_udp_server.c">
|
||||
<area shape="rect" id="node1" title="Server-side implementation of [Remote Command Execution Using UDP](https://www.imperva...." alt="" coords="419,5,621,47"/>
|
||||
<area shape="rect" id="node2" title=" " alt="" coords="5,95,88,121"/>
|
||||
<area shape="rect" id="node3" title=" " alt="" coords="113,95,175,121"/>
|
||||
<area shape="rect" id="node4" title=" " alt="" coords="199,95,265,121"/>
|
||||
<area shape="rect" id="node5" title=" " alt="" coords="289,95,375,121"/>
|
||||
<area shape="rect" id="node6" title=" " alt="" coords="399,95,465,121"/>
|
||||
<area shape="rect" id="node7" title=" " alt="" coords="489,95,551,121"/>
|
||||
<area shape="rect" id="node8" title=" " alt="" coords="575,95,639,121"/>
|
||||
<area shape="rect" id="node9" title=" " alt="" coords="663,95,729,121"/>
|
||||
<area shape="rect" id="node10" title=" " alt="" coords="753,95,850,121"/>
|
||||
<area shape="rect" id="node11" title=" " alt="" coords="875,95,965,121"/>
|
||||
<area shape="rect" id="node12" title=" " alt="" coords="990,95,1058,121"/>
|
||||
</map>
|
1
da/d10/remote__command__exec__udp__server_8c__incl.md5
Normal file
1
da/d10/remote__command__exec__udp__server_8c__incl.md5
Normal file
@ -0,0 +1 @@
|
||||
47ba3691c5e3770d83256b79a959fb4f
|
276
da/d10/remote__command__exec__udp__server_8c__incl.svg
Normal file
276
da/d10/remote__command__exec__udp__server_8c__incl.svg
Normal file
@ -0,0 +1,276 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.50.0 (20211204.2007)
|
||||
-->
|
||||
<!-- Title: client_server/remote_command_exec_udp_server.c Pages: 1 -->
|
||||
<!--zoomable 95 -->
|
||||
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
|
||||
<style type="text/css"><![CDATA[
|
||||
.edge:hover path { stroke: red; }
|
||||
.edge:hover polygon { stroke: red; fill: red; }
|
||||
]]></style>
|
||||
<script type="text/javascript"><![CDATA[
|
||||
var edges = document.getElementsByTagName('g');
|
||||
if (edges && edges.length) {
|
||||
for (var i=0;i<edges.length;i++) {
|
||||
if (edges[i].id.substr(0,4)=='edge') {
|
||||
edges[i].setAttribute('class','edge');
|
||||
}
|
||||
}
|
||||
}
|
||||
]]></script>
|
||||
<defs>
|
||||
<circle id="rim" cx="0" cy="0" r="7"/>
|
||||
<circle id="rim2" cx="0" cy="0" r="3.5"/>
|
||||
<g id="zoomPlus">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomplus.mouseover" end="zoomplus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8M0,-4v8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="zoomMin">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="zoomminus.mouseover" end="zoomminus.mouseout"/>
|
||||
</use>
|
||||
<path d="M-4,0h8" fill="none" stroke="white" stroke-width="1.5" pointer-events="none"/>
|
||||
</g>
|
||||
<g id="dirArrow">
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="resetDef">
|
||||
<use xlink:href="#rim2" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="reset.mouseover" end="reset.mouseout"/>
|
||||
</use>
|
||||
</g>
|
||||
</defs>
|
||||
|
||||
<script type="text/javascript">
|
||||
var viewWidth = 798;
|
||||
var viewHeight = 95;
|
||||
var sectionId = 'dynsection-0';
|
||||
</script>
|
||||
<script xlink:href="../../svgpan.js"/>
|
||||
<svg id="graph" class="graph">
|
||||
<g id="viewport">
|
||||
<title>client_server/remote_command_exec_udp_server.c</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-91 793.5,-91 793.5,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Server-side implementation of [Remote Command Execution Using UDP](https://www.imperva....">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="310,-56.5 310,-86.5 462,-86.5 462,-56.5 310,-56.5"/>
|
||||
<text text-anchor="start" x="318" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">client_server/remote</text>
|
||||
<text text-anchor="middle" x="386" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_command_exec_udp_server.c</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="0,-0.5 0,-19.5 62,-19.5 62,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="31" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">arpa/inet.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M309.7,-59.63C248.14,-50.54 159.08,-36.7 72.41,-20.18"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="72.88,-16.71 62.4,-18.26 71.56,-23.58 72.88,-16.71"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="80.5,-0.5 80.5,-19.5 127.5,-19.5 127.5,-0.5 80.5,-0.5"/>
|
||||
<text text-anchor="middle" x="104" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">errno.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M309.91,-56.66C262.73,-47.73 200.68,-35.33 137.81,-20.31"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="138.26,-16.82 127.71,-17.88 136.62,-23.63 138.26,-16.82"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="145.5,-0.5 145.5,-19.5 194.5,-19.5 194.5,-0.5 145.5,-0.5"/>
|
||||
<text text-anchor="middle" x="170" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netdb.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M335.08,-56.47C294.79,-45.37 239.61,-30.17 204.37,-20.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="205.13,-17.05 194.56,-17.76 203.27,-23.79 205.13,-17.05"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="212.5,-0.5 212.5,-19.5 277.5,-19.5 277.5,-0.5 212.5,-0.5"/>
|
||||
<text text-anchor="middle" x="245" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netinet/in.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M352.58,-56.4C329.03,-46.46 297.76,-33.26 275.01,-23.66"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="276.09,-20.32 265.52,-19.66 273.37,-26.77 276.09,-20.32"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="295.5,-0.5 295.5,-19.5 344.5,-19.5 344.5,-0.5 295.5,-0.5"/>
|
||||
<text text-anchor="middle" x="320" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M370.36,-56.4C360.37,-47.4 347.42,-35.72 337.15,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="339.37,-23.75 329.6,-19.66 334.69,-28.95 339.37,-23.75"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="363,-0.5 363,-19.5 409,-19.5 409,-0.5 363,-0.5"/>
|
||||
<text text-anchor="middle" x="386" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdio.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node1->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M386,-56.4C386,-48.47 386,-38.46 386,-29.86"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="389.5,-29.66 386,-19.66 382.5,-29.66 389.5,-29.66"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="427,-0.5 427,-19.5 475,-19.5 475,-0.5 427,-0.5"/>
|
||||
<text text-anchor="middle" x="451" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdlib.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M401.4,-56.4C411.24,-47.4 423.99,-35.72 434.11,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="436.53,-28.99 441.54,-19.66 431.8,-23.83 436.53,-28.99"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="493.5,-0.5 493.5,-19.5 542.5,-19.5 542.5,-0.5 493.5,-0.5"/>
|
||||
<text text-anchor="middle" x="518" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">string.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node9 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M417.28,-56.4C439.23,-46.51 468.34,-33.38 489.62,-23.79"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="491.11,-26.96 498.79,-19.66 488.24,-20.58 491.11,-26.96"/>
|
||||
</g>
|
||||
<!-- Node10 -->
|
||||
<g id="node10" class="node">
|
||||
<title>Node10</title>
|
||||
<g id="a_node10"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="560.5,-0.5 560.5,-19.5 633.5,-19.5 633.5,-0.5 560.5,-0.5"/>
|
||||
<text text-anchor="middle" x="597" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/socket.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node10 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node1->Node10</title>
|
||||
<path fill="none" stroke="midnightblue" d="M435.74,-56.47C472.77,-46.03 522.68,-31.96 557.12,-22.25"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="558.16,-25.59 566.83,-19.51 556.26,-18.85 558.16,-25.59"/>
|
||||
</g>
|
||||
<!-- Node11 -->
|
||||
<g id="node11" class="node">
|
||||
<title>Node11</title>
|
||||
<g id="a_node11"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="652,-0.5 652,-19.5 720,-19.5 720,-0.5 652,-0.5"/>
|
||||
<text text-anchor="middle" x="686" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/types.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node11 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node1->Node11</title>
|
||||
<path fill="none" stroke="midnightblue" d="M458.61,-56.48C507.69,-46.94 574.25,-33.9 641.77,-20.23"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="642.64,-23.63 651.74,-18.21 641.24,-16.77 642.64,-23.63"/>
|
||||
</g>
|
||||
<!-- Node12 -->
|
||||
<g id="node12" class="node">
|
||||
<title>Node12</title>
|
||||
<g id="a_node12"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="738.5,-0.5 738.5,-19.5 789.5,-19.5 789.5,-0.5 738.5,-0.5"/>
|
||||
<text text-anchor="middle" x="764" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">unistd.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node12 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Node1->Node12</title>
|
||||
<path fill="none" stroke="midnightblue" d="M462.01,-61.65C529.46,-53.26 630.84,-39.34 728.42,-19.92"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="729.34,-23.3 738.46,-17.9 727.96,-16.44 729.34,-23.3"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<g id="navigator" transform="translate(0 0)" fill="#404254">
|
||||
<rect fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width=".5" x="0" y="0" width="60" height="60"/>
|
||||
<use id="zoomplus" xlink:href="#zoomPlus" x="17" y="9" onmousedown="handleZoom(evt,'in')"/>
|
||||
<use id="zoomminus" xlink:href="#zoomMin" x="42" y="9" onmousedown="handleZoom(evt,'out')"/>
|
||||
<use id="reset" xlink:href="#resetDef" x="30" y="36" onmousedown="handleReset()"/>
|
||||
<g id="arrowUp" xlink:href="#dirArrow" transform="translate(30 24)" onmousedown="handlePan(0,-1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowUp.mouseover" end="arrowUp.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowRight" xlink:href="#dirArrow" transform="rotate(90) translate(36 -43)" onmousedown="handlePan(1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowRight.mouseover" end="arrowRight.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowDown" xlink:href="#dirArrow" transform="rotate(180) translate(-30 -48)" onmousedown="handlePan(0,1)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowDown.mouseover" end="arrowDown.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
<g id="arrowLeft" xlink:href="#dirArrow" transform="rotate(270) translate(-36 17)" onmousedown="handlePan(-1,0)">
|
||||
<use xlink:href="#rim" fill="#404040">
|
||||
<set attributeName="fill" to="#808080" begin="arrowLeft.mouseover" end="arrowLeft.mouseout"/>
|
||||
</use>
|
||||
<path fill="none" stroke="white" stroke-width="1.5" d="M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5"/>
|
||||
</g>
|
||||
</g>
|
||||
<svg viewBox="0 0 15 15" width="100%" height="30px" preserveAspectRatio="xMaxYMin meet">
|
||||
<g id="arrow_out" transform="scale(0.3 0.3)">
|
||||
<a xlink:href="remote__command__exec__udp__server_8c__incl_org.svg" target="_base">
|
||||
<rect id="button" ry="5" rx="5" y="6" x="6" height="38" width="38"
|
||||
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
|
||||
<path id="arrow"
|
||||
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
|
||||
style="fill:#404040;"/>
|
||||
</a>
|
||||
</g>
|
||||
</svg>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
188
da/d10/remote__command__exec__udp__server_8c__incl_org.svg
Normal file
188
da/d10/remote__command__exec__udp__server_8c__incl_org.svg
Normal file
@ -0,0 +1,188 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.50.0 (20211204.2007)
|
||||
-->
|
||||
<!-- Title: client_server/remote_command_exec_udp_server.c Pages: 1 -->
|
||||
<svg width="798pt" height="95pt"
|
||||
viewBox="0.00 0.00 797.50 95.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 91)">
|
||||
<title>client_server/remote_command_exec_udp_server.c</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-91 793.5,-91 793.5,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Server-side implementation of [Remote Command Execution Using UDP](https://www.imperva....">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="310,-56.5 310,-86.5 462,-86.5 462,-56.5 310,-56.5"/>
|
||||
<text text-anchor="start" x="318" y="-74.5" font-family="Helvetica,sans-Serif" font-size="10.00">client_server/remote</text>
|
||||
<text text-anchor="middle" x="386" y="-63.5" font-family="Helvetica,sans-Serif" font-size="10.00">_command_exec_udp_server.c</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="0,-0.5 0,-19.5 62,-19.5 62,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="31" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">arpa/inet.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M309.7,-59.63C248.14,-50.54 159.08,-36.7 72.41,-20.18"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="72.88,-16.71 62.4,-18.26 71.56,-23.58 72.88,-16.71"/>
|
||||
</g>
|
||||
<!-- Node3 -->
|
||||
<g id="node3" class="node">
|
||||
<title>Node3</title>
|
||||
<g id="a_node3"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="80.5,-0.5 80.5,-19.5 127.5,-19.5 127.5,-0.5 80.5,-0.5"/>
|
||||
<text text-anchor="middle" x="104" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">errno.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node3 -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>Node1->Node3</title>
|
||||
<path fill="none" stroke="midnightblue" d="M309.91,-56.66C262.73,-47.73 200.68,-35.33 137.81,-20.31"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="138.26,-16.82 127.71,-17.88 136.62,-23.63 138.26,-16.82"/>
|
||||
</g>
|
||||
<!-- Node4 -->
|
||||
<g id="node4" class="node">
|
||||
<title>Node4</title>
|
||||
<g id="a_node4"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="145.5,-0.5 145.5,-19.5 194.5,-19.5 194.5,-0.5 145.5,-0.5"/>
|
||||
<text text-anchor="middle" x="170" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netdb.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node4 -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>Node1->Node4</title>
|
||||
<path fill="none" stroke="midnightblue" d="M335.08,-56.47C294.79,-45.37 239.61,-30.17 204.37,-20.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="205.13,-17.05 194.56,-17.76 203.27,-23.79 205.13,-17.05"/>
|
||||
</g>
|
||||
<!-- Node5 -->
|
||||
<g id="node5" class="node">
|
||||
<title>Node5</title>
|
||||
<g id="a_node5"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="212.5,-0.5 212.5,-19.5 277.5,-19.5 277.5,-0.5 212.5,-0.5"/>
|
||||
<text text-anchor="middle" x="245" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">netinet/in.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node5 -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>Node1->Node5</title>
|
||||
<path fill="none" stroke="midnightblue" d="M352.58,-56.4C329.03,-46.46 297.76,-33.26 275.01,-23.66"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="276.09,-20.32 265.52,-19.66 273.37,-26.77 276.09,-20.32"/>
|
||||
</g>
|
||||
<!-- Node6 -->
|
||||
<g id="node6" class="node">
|
||||
<title>Node6</title>
|
||||
<g id="a_node6"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="295.5,-0.5 295.5,-19.5 344.5,-19.5 344.5,-0.5 295.5,-0.5"/>
|
||||
<text text-anchor="middle" x="320" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdint.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node6 -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>Node1->Node6</title>
|
||||
<path fill="none" stroke="midnightblue" d="M370.36,-56.4C360.37,-47.4 347.42,-35.72 337.15,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="339.37,-23.75 329.6,-19.66 334.69,-28.95 339.37,-23.75"/>
|
||||
</g>
|
||||
<!-- Node7 -->
|
||||
<g id="node7" class="node">
|
||||
<title>Node7</title>
|
||||
<g id="a_node7"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="363,-0.5 363,-19.5 409,-19.5 409,-0.5 363,-0.5"/>
|
||||
<text text-anchor="middle" x="386" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdio.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node7 -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>Node1->Node7</title>
|
||||
<path fill="none" stroke="midnightblue" d="M386,-56.4C386,-48.47 386,-38.46 386,-29.86"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="389.5,-29.66 386,-19.66 382.5,-29.66 389.5,-29.66"/>
|
||||
</g>
|
||||
<!-- Node8 -->
|
||||
<g id="node8" class="node">
|
||||
<title>Node8</title>
|
||||
<g id="a_node8"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="427,-0.5 427,-19.5 475,-19.5 475,-0.5 427,-0.5"/>
|
||||
<text text-anchor="middle" x="451" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">stdlib.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node8 -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>Node1->Node8</title>
|
||||
<path fill="none" stroke="midnightblue" d="M401.4,-56.4C411.24,-47.4 423.99,-35.72 434.11,-26.47"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="436.53,-28.99 441.54,-19.66 431.8,-23.83 436.53,-28.99"/>
|
||||
</g>
|
||||
<!-- Node9 -->
|
||||
<g id="node9" class="node">
|
||||
<title>Node9</title>
|
||||
<g id="a_node9"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="493.5,-0.5 493.5,-19.5 542.5,-19.5 542.5,-0.5 493.5,-0.5"/>
|
||||
<text text-anchor="middle" x="518" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">string.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node9 -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>Node1->Node9</title>
|
||||
<path fill="none" stroke="midnightblue" d="M417.28,-56.4C439.23,-46.51 468.34,-33.38 489.62,-23.79"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="491.11,-26.96 498.79,-19.66 488.24,-20.58 491.11,-26.96"/>
|
||||
</g>
|
||||
<!-- Node10 -->
|
||||
<g id="node10" class="node">
|
||||
<title>Node10</title>
|
||||
<g id="a_node10"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="560.5,-0.5 560.5,-19.5 633.5,-19.5 633.5,-0.5 560.5,-0.5"/>
|
||||
<text text-anchor="middle" x="597" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/socket.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node10 -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>Node1->Node10</title>
|
||||
<path fill="none" stroke="midnightblue" d="M435.74,-56.47C472.77,-46.03 522.68,-31.96 557.12,-22.25"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="558.16,-25.59 566.83,-19.51 556.26,-18.85 558.16,-25.59"/>
|
||||
</g>
|
||||
<!-- Node11 -->
|
||||
<g id="node11" class="node">
|
||||
<title>Node11</title>
|
||||
<g id="a_node11"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="652,-0.5 652,-19.5 720,-19.5 720,-0.5 652,-0.5"/>
|
||||
<text text-anchor="middle" x="686" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">sys/types.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node11 -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>Node1->Node11</title>
|
||||
<path fill="none" stroke="midnightblue" d="M458.61,-56.48C507.69,-46.94 574.25,-33.9 641.77,-20.23"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="642.64,-23.63 651.74,-18.21 641.24,-16.77 642.64,-23.63"/>
|
||||
</g>
|
||||
<!-- Node12 -->
|
||||
<g id="node12" class="node">
|
||||
<title>Node12</title>
|
||||
<g id="a_node12"><a xlink:title=" ">
|
||||
<polygon fill="white" stroke="#bfbfbf" points="738.5,-0.5 738.5,-19.5 789.5,-19.5 789.5,-0.5 738.5,-0.5"/>
|
||||
<text text-anchor="middle" x="764" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">unistd.h</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node12 -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>Node1->Node12</title>
|
||||
<path fill="none" stroke="midnightblue" d="M462.01,-61.65C529.46,-53.26 630.84,-39.34 728.42,-19.92"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="729.34,-23.3 738.46,-17.9 727.96,-16.44 729.34,-23.3"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.2 KiB |
356
dd/d79/remote__command__exec__udp__server_8c.html
Normal file
356
dd/d79/remote__command__exec__udp__server_8c.html
Normal file
@ -0,0 +1,356 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.9.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>Algorithms_in_C: client_server/remote_command_exec_udp_server.c File Reference</title>
|
||||
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../jquery.js"></script>
|
||||
<script type="text/javascript" src="../../dynsections.js"></script>
|
||||
<link href="../../navtree.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../resize.js"></script>
|
||||
<script type="text/javascript" src="../../navtreedata.js"></script>
|
||||
<script type="text/javascript" src="../../navtree.js"></script>
|
||||
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
|
||||
<script type="text/javascript" src="../../search/searchdata.js"></script>
|
||||
<script type="text/javascript" src="../../search/search.js"></script>
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
|
||||
jax: ["input/TeX","output/HTML-CSS"],
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
|
||||
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||
<div id="titlearea">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr style="height: 56px;">
|
||||
<td id="projectalign" style="padding-left: 0.5em;">
|
||||
<div id="projectname">Algorithms_in_C<span id="projectnumber"> 1.0.0</span>
|
||||
</div>
|
||||
<div id="projectbrief">Set of algorithms implemented in C.</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.9.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search",'Search','.html');
|
||||
/* @license-end */
|
||||
</script>
|
||||
<script type="text/javascript" src="../../menudata.js"></script>
|
||||
<script type="text/javascript" src="../../menu.js"></script>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(function() {
|
||||
initMenu('../../',true,false,'search.php','Search');
|
||||
$(document).ready(function() { init_search(); });
|
||||
});
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="main-nav"></div>
|
||||
</div><!-- top -->
|
||||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||||
<div id="nav-tree">
|
||||
<div id="nav-tree-contents">
|
||||
<div id="nav-sync" class="sync"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="splitbar" style="-moz-user-select:none;"
|
||||
class="ui-resizable-handle">
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
$(document).ready(function(){initNavTree('dd/d79/remote__command__exec__udp__server_8c.html','../../'); initResizable(); });
|
||||
/* @license-end */
|
||||
</script>
|
||||
<div id="doc-content">
|
||||
<!-- window showing the filter options -->
|
||||
<div id="MSearchSelectWindow"
|
||||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||
</div>
|
||||
|
||||
<!-- iframe showing the search results (closed by default) -->
|
||||
<div id="MSearchResultsWindow">
|
||||
<iframe src="javascript:void(0)" frameborder="0"
|
||||
name="MSearchResults" id="MSearchResults">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div class="header">
|
||||
<div class="summary">
|
||||
<a href="#define-members">Macros</a> |
|
||||
<a href="#func-members">Functions</a> </div>
|
||||
<div class="headertitle"><div class="title">remote_command_exec_udp_server.c File Reference</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
|
||||
<p>Server-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>)
|
||||
<a href="#details">More...</a></p>
|
||||
<div class="textblock"><code>#include <arpa/inet.h></code><br />
|
||||
<code>#include <errno.h></code><br />
|
||||
<code>#include <netdb.h></code><br />
|
||||
<code>#include <netinet/in.h></code><br />
|
||||
<code>#include <stdint.h></code><br />
|
||||
<code>#include <stdio.h></code><br />
|
||||
<code>#include <stdlib.h></code><br />
|
||||
<code>#include <string.h></code><br />
|
||||
<code>#include <sys/socket.h></code><br />
|
||||
<code>#include <sys/types.h></code><br />
|
||||
<code>#include <unistd.h></code><br />
|
||||
</div><div class="textblock"><div class="dynheader">
|
||||
Include dependency graph for remote_command_exec_udp_server.c:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="../../da/d10/remote__command__exec__udp__server_8c__incl.svg" width="100%" height="395"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
|
||||
</div>
|
||||
</div>
|
||||
</div><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
|
||||
Macros</h2></td></tr>
|
||||
<tr class="memitem:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a>   10000</td></tr>
|
||||
<tr class="memdesc:a614217d263be1fb1a5f76e2ff7be19a2"><td class="mdescLeft"> </td><td class="mdescRight">For the type in_addr_t and in_port_t. <a href="../../dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">More...</a><br /></td></tr>
|
||||
<tr class="separator:a614217d263be1fb1a5f76e2ff7be19a2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table><table class="memberdecls">
|
||||
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
||||
Functions</h2></td></tr>
|
||||
<tr class="memitem:a7e15c8e2885871839fc2b820dfbdb4ce"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a> ()</td></tr>
|
||||
<tr class="memdesc:a7e15c8e2885871839fc2b820dfbdb4ce"><td class="mdescLeft"> </td><td class="mdescRight">Utility function used to print an error message to <code>stderr</code>. <a href="../../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">More...</a><br /></td></tr>
|
||||
<tr class="separator:a7e15c8e2885871839fc2b820dfbdb4ce"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dd/d79/remote__command__exec__udp__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a> ()</td></tr>
|
||||
<tr class="memdesc:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="mdescLeft"> </td><td class="mdescRight">Main function. <a href="../../dd/d79/remote__command__exec__udp__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4">More...</a><br /></td></tr>
|
||||
<tr class="separator:ae66f6b31b5ad750f1fe042a706a4e3d4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
</table>
|
||||
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
||||
<div class="textblock"><p >Server-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>) </p>
|
||||
<dl class="section author"><dt>Author</dt><dd><a href="https://github.com/NVombat" target="_blank">NVombat</a> </dd></dl>
|
||||
<dl class="section see"><dt>See also</dt><dd><a class="el" href="../../dd/d79/remote__command__exec__udp__server_8c.html" title="Server-side implementation of [Remote Command Execution Using UDP](https://www.imperva....">remote_command_exec_udp_server.c</a></dd></dl>
|
||||
<p>The algorithm is based on the simple UDP client and server model. It runs an infinite loop which takes user input and sends it to the server for execution. The server receives the commands and executes them until the user exits the loop. In this way, Remote Command Execution using UDP is shown using the server-client model & socket programming </p>
|
||||
</div><h2 class="groupheader">Macro Definition Documentation</h2>
|
||||
<a id="a614217d263be1fb1a5f76e2ff7be19a2" name="a614217d263be1fb1a5f76e2ff7be19a2"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a614217d263be1fb1a5f76e2ff7be19a2">◆ </a></span>PORT</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">#define PORT   10000</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>For the type in_addr_t and in_port_t. </p>
|
||||
<p >To indicate what went wrong if an error occurs For structures returned by the network database library - formatted internet addresses and port numbers For in_addr and sockaddr_in structures For specific bit size values of variables Variable types, several macros, and various functions for performing input and output Variable types, several macros, and various functions for performing general functions Various functions for manipulating arrays of characters For macro definitions related to the creation of sockets For definitions to allow for the porting of BSD programs For miscellaneous symbolic constants and types, and miscellaneous functions </p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<h2 class="groupheader">Function Documentation</h2>
|
||||
<a id="a7e15c8e2885871839fc2b820dfbdb4ce" name="a7e15c8e2885871839fc2b820dfbdb4ce"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#a7e15c8e2885871839fc2b820dfbdb4ce">◆ </a></span>error()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">void error </td>
|
||||
<td>(</td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Utility function used to print an error message to <code>stderr</code>. </p>
|
||||
<p >It prints <code>str</code> and an implementation-defined error message corresponding to the global variable <code>errno</code>. </p><dl class="section return"><dt>Returns</dt><dd>void </dd></dl>
|
||||
<div class="fragment"><div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>{</div>
|
||||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> perror(<span class="stringliteral">"Socket Creation Failed"</span>);</div>
|
||||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> exit(EXIT_FAILURE);</div>
|
||||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span>}</div>
|
||||
</div><!-- fragment -->
|
||||
</div>
|
||||
</div>
|
||||
<a id="ae66f6b31b5ad750f1fe042a706a4e3d4" name="ae66f6b31b5ad750f1fe042a706a4e3d4"></a>
|
||||
<h2 class="memtitle"><span class="permalink"><a href="#ae66f6b31b5ad750f1fe042a706a4e3d4">◆ </a></span>main()</h2>
|
||||
|
||||
<div class="memitem">
|
||||
<div class="memproto">
|
||||
<table class="memname">
|
||||
<tr>
|
||||
<td class="memname">int main </td>
|
||||
<td>(</td>
|
||||
<td class="paramtype">void </td>
|
||||
<td class="paramname"></td><td>)</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div><div class="memdoc">
|
||||
|
||||
<p>Main function. </p>
|
||||
<dl class="section return"><dt>Returns</dt><dd>0 on exit </dd></dl>
|
||||
<p >Variable Declarations</p>
|
||||
<p >< socket descriptors - Like file handles but for sockets</p>
|
||||
<p >< character arrays to read and store string data for communication & Success message</p>
|
||||
<p >< basic structures for all syscalls and functions that deal with internet addresses. Structures for handling internet addresses</p>
|
||||
<p >size of address</p>
|
||||
<p >The UDP socket is created using the socket function.</p>
|
||||
<p >AF_INET (Family) - it is an address family that is used to designate the type of addresses that your socket can communicate with</p>
|
||||
<p >SOCK_DGRAM (Type) - Indicates UDP Connection - UDP does not require the source and destination to establish a three-way handshake before transmission takes place. Additionally, there is no need for an end-to-end connection</p>
|
||||
<p >0 (Protocol) - Specifies a particular protocol to be used with the socket. Specifying a protocol of 0 causes socket() to use an unspecified default protocol appropriate for the requested socket type.</p>
|
||||
<p >Server Address Information</p>
|
||||
<p >The bzero() function erases the data in the n bytes of the memory starting at the location pointed to, by writing zeros (bytes containing '\0') to that area.</p>
|
||||
<p >We bind the server_addr to the internet address and port number thus giving our socket an identity with an address and port where it can listen for connections</p>
|
||||
<p >htons - The htons() function translates a short integer from host byte order to network byte order</p>
|
||||
<p >htonl - The htonl() function translates a long integer from host byte order to network byte order</p>
|
||||
<p >These functions are necessary so that the binding of address and port takes place with data in the correct format</p>
|
||||
<p >This binds the socket descriptor to the server thus enabling the server to listen for connections and communicate with other clients</p>
|
||||
<p >If binding is unsuccessful</p>
|
||||
<p >Communication between client and server</p>
|
||||
<p >The bzero() function erases the data in the n bytes of the memory starting at the location pointed to, by writing zeros (bytes containing '\0') to that area. The variables are emptied and then ready for use</p>
|
||||
<p >The server receives data from the client which is a command. It then executes the command.</p>
|
||||
<p >The client then receives a response from the server when the command has been executed</p>
|
||||
<p >The server and client can communicate indefinitely till one of them exits the connection</p>
|
||||
<p >The client sends the server a command which it executes thus showing remote command execution using UDP</p>
|
||||
<p >Close socket</p>
|
||||
<div class="fragment"><div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span>{<span class="comment"></span></div>
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> /** Variable Declarations */</span></div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> uint32_t</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> sockfd; <span class="comment">///< socket descriptors - Like file handles but for sockets</span></div>
|
||||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordtype">char</span> recv_msg[1024],</div>
|
||||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> success_message[] =</div>
|
||||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="stringliteral">"Command Executed Successfully!\n"</span>; <span class="comment">///< character arrays to read</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment"> /// and store string data</span></div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"> /// for communication & Success</span></div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment"> /// message</span></div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">struct </span>sockaddr_in server_addr,</div>
|
||||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> client_addr; <span class="comment">///< basic structures for all syscalls and functions that</span><span class="comment"></span></div>
|
||||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> /// deal with internet addresses. Structures for handling</span></div>
|
||||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> /// internet addresses</span></div>
|
||||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"></span> socklen_t clientLength = <span class="keyword">sizeof</span>(client_addr); <span class="comment">/// size of address</span></div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> * The UDP socket is created using the socket function.</span></div>
|
||||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> * AF_INET (Family) - it is an address family that is used to designate the</span></div>
|
||||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"> * type of addresses that your socket can communicate with</span></div>
|
||||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * SOCK_DGRAM (Type) - Indicates UDP Connection - UDP does not require the</span></div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> * source and destination to establish a three-way handshake before</span></div>
|
||||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="comment"> * transmission takes place. Additionally, there is no need for an</span></div>
|
||||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="comment"> * end-to-end connection</span></div>
|
||||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment"> * 0 (Protocol) - Specifies a particular protocol to be used with the</span></div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> * socket. Specifying a protocol of 0 causes socket() to use an unspecified</span></div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> * default protocol appropriate for the requested socket type.</span></div>
|
||||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0)</div>
|
||||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> {</div>
|
||||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <a class="code hl_function" href="../../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a>();</div>
|
||||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"> * Server Address Information</span></div>
|
||||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * The bzero() function erases the data in the n bytes of the memory</span></div>
|
||||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> * starting at the location pointed to, by writing zeros (bytes</span></div>
|
||||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> * containing '\0') to that area.</span></div>
|
||||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> * We bind the server_addr to the internet address and port number thus</span></div>
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * giving our socket an identity with an address and port where it can</span></div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> * listen for connections</span></div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> * htons - The htons() function translates a short integer from host byte</span></div>
|
||||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> * order to network byte order</span></div>
|
||||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> * htonl - The htonl() function translates a long integer from host byte</span></div>
|
||||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> * order to network byte order</span></div>
|
||||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> * These functions are necessary so that the binding of address and port</span></div>
|
||||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"> * takes place with data in the correct format</span></div>
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> bzero(&server_addr, <span class="keyword">sizeof</span>(server_addr));</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> server_addr.sin_family = AF_INET;</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> server_addr.sin_port = htons(<a class="code hl_define" href="../../dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a>);</div>
|
||||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> server_addr.sin_addr.s_addr = htonl(INADDR_ANY);</div>
|
||||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> * This binds the socket descriptor to the server thus enabling the server</span></div>
|
||||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> * to listen for connections and communicate with other clients</span></div>
|
||||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">if</span> (bind(sockfd, (<span class="keyword">struct</span> sockaddr *)&server_addr, <span class="keyword">sizeof</span>(server_addr)) < 0)</div>
|
||||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> {</div>
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> <a class="code hl_function" href="../../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a>(); <span class="comment">/// If binding is unsuccessful</span></div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> }</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> printf(<span class="stringliteral">"Server is Connected Successfully...\n"</span>);</div>
|
||||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> /**</span></div>
|
||||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> * Communication between client and server</span></div>
|
||||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> * The bzero() function erases the data in the n bytes of the memory</span></div>
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> * starting at the location pointed to, by writing zeros (bytes</span></div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * containing '\0') to that area. The variables are emptied and then</span></div>
|
||||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * ready for use</span></div>
|
||||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> * The server receives data from the client which is a command. It then</span></div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> * executes the command.</span></div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment"> * The client then receives a response from the server when the</span></div>
|
||||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"> * command has been executed</span></div>
|
||||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment"> * The server and client can communicate indefinitely till one of them</span></div>
|
||||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment"> * exits the connection</span></div>
|
||||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment"> *</span></div>
|
||||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment"> * The client sends the server a command which it executes thus showing</span></div>
|
||||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment"> * remote command execution using UDP</span></div>
|
||||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="comment"> */</span></div>
|
||||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">while</span> (1)</div>
|
||||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
|
||||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> bzero(recv_msg, <span class="keyword">sizeof</span>(recv_msg));</div>
|
||||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> recvfrom(sockfd, recv_msg, <span class="keyword">sizeof</span>(recv_msg), 0,</div>
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> (<span class="keyword">struct</span> sockaddr *)&client_addr, &clientLength);</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> printf(<span class="stringliteral">"Command Output: \n"</span>);</div>
|
||||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> system(recv_msg);</div>
|
||||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> printf(<span class="stringliteral">"Command Executed\n"</span>);</div>
|
||||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> sendto(sockfd, success_message, <span class="keyword">sizeof</span>(success_message), 0,</div>
|
||||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> (<span class="keyword">struct</span> sockaddr *)&client_addr, clientLength);</div>
|
||||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> }</div>
|
||||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"></span> </div>
|
||||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment"> /// Close socket</span></div>
|
||||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"></span> close(sockfd);</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> printf(<span class="stringliteral">"Server is offline...\n"</span>);</div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">return</span> 0;</div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>}</div>
|
||||
<div class="ttc" id="aremote__command__exec__udp__server_8c_html_a614217d263be1fb1a5f76e2ff7be19a2"><div class="ttname"><a href="../../dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">PORT</a></div><div class="ttdeci">#define PORT</div><div class="ttdoc">For the type in_addr_t and in_port_t.</div><div class="ttdef"><b>Definition:</b> remote_command_exec_udp_server.c:29</div></div>
|
||||
<div class="ttc" id="aremote__command__exec__udp__server_8c_html_a7e15c8e2885871839fc2b820dfbdb4ce"><div class="ttname"><a href="../../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">error</a></div><div class="ttdeci">void error()</div><div class="ttdoc">Utility function used to print an error message to stderr.</div><div class="ttdef"><b>Definition:</b> remote_command_exec_udp_server.c:37</div></div>
|
||||
</div><!-- fragment --><div class="dynheader">
|
||||
Here is the call graph for this function:</div>
|
||||
<div class="dyncontent">
|
||||
<div class="center"><iframe scrolling="no" frameborder="0" src="../../dd/d79/remote__command__exec__udp__server_8c_ae66f6b31b5ad750f1fe042a706a4e3d4_cgraph.svg" width="158" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div><!-- contents -->
|
||||
</div><!-- doc-content -->
|
||||
<!-- start footer part -->
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_d20ad0b8de644c123692ba5582cc7a7b.html">client_server</a></li><li class="navelem"><a class="el" href="../../dd/d79/remote__command__exec__udp__server_8c.html">remote_command_exec_udp_server.c</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
6
dd/d79/remote__command__exec__udp__server_8c.js
Normal file
6
dd/d79/remote__command__exec__udp__server_8c.js
Normal file
@ -0,0 +1,6 @@
|
||||
var remote__command__exec__udp__server_8c =
|
||||
[
|
||||
[ "PORT", "dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2", null ],
|
||||
[ "error", "dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce", null ],
|
||||
[ "main", "dd/d79/remote__command__exec__udp__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4", null ]
|
||||
];
|
@ -0,0 +1,4 @@
|
||||
<map id="main" name="main">
|
||||
<area shape="rect" id="node1" title="Main function." alt="" coords="5,5,56,32"/>
|
||||
<area shape="rect" id="node2" href="$dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce" title="Utility function used to print an error message to stderr." alt="" coords="104,5,152,32"/>
|
||||
</map>
|
@ -0,0 +1 @@
|
||||
35f36bb1adf42aff75086f271f074ab3
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 2.50.0 (20211204.2007)
|
||||
-->
|
||||
<!-- Title: main Pages: 1 -->
|
||||
<svg width="118pt" height="28pt"
|
||||
viewBox="0.00 0.00 118.00 28.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 24)">
|
||||
<title>main</title>
|
||||
<polygon fill="white" stroke="transparent" points="-4,4 -4,-24 114,-24 114,4 -4,4"/>
|
||||
<!-- Node1 -->
|
||||
<g id="node1" class="node">
|
||||
<title>Node1</title>
|
||||
<g id="a_node1"><a xlink:title="Main function.">
|
||||
<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-19.5 38,-19.5 38,-0.5 0,-0.5"/>
|
||||
<text text-anchor="middle" x="19" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">main</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node2 -->
|
||||
<g id="node2" class="node">
|
||||
<title>Node2</title>
|
||||
<g id="a_node2"><a xlink:href="../../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce" target="_top" xlink:title="Utility function used to print an error message to stderr.">
|
||||
<polygon fill="white" stroke="black" points="74,-0.5 74,-19.5 110,-19.5 110,-0.5 74,-0.5"/>
|
||||
<text text-anchor="middle" x="92" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">error</text>
|
||||
</a>
|
||||
</g>
|
||||
</g>
|
||||
<!-- Node1->Node2 -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>Node1->Node2</title>
|
||||
<path fill="none" stroke="midnightblue" d="M38.28,-10C46.03,-10 55.21,-10 63.73,-10"/>
|
||||
<polygon fill="midnightblue" stroke="midnightblue" points="64,-13.5 74,-10 64,-6.5 64,-13.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
@ -99,6 +99,12 @@ Files</h2></td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dd/d93/client_8c.html">client.c</a></td></tr>
|
||||
<tr class="memdesc:dd/d93/client_8c"><td class="mdescLeft"> </td><td class="mdescRight">Client side implementation of Server-Client system. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="d9/ddd/remote__command__exec__udp__client_8c.html">remote_command_exec_udp_client.c</a></td></tr>
|
||||
<tr class="memdesc:d9/ddd/remote__command__exec__udp__client_8c"><td class="mdescLeft"> </td><td class="mdescRight">Client-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>) <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="dd/d79/remote__command__exec__udp__server_8c.html">remote_command_exec_udp_server.c</a></td></tr>
|
||||
<tr class="memdesc:dd/d79/remote__command__exec__udp__server_8c"><td class="mdescLeft"> </td><td class="mdescRight">Server-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>) <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file  </td><td class="memItemRight" valign="bottom"><a class="el" href="d1/d20/server_8c.html">server.c</a></td></tr>
|
||||
<tr class="memdesc:d1/d20/server_8c"><td class="mdescLeft"> </td><td class="mdescRight">Server side implementation of Server-Client system. <br /></td></tr>
|
||||
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||
|
@ -1,6 +1,8 @@
|
||||
var dir_d20ad0b8de644c123692ba5582cc7a7b =
|
||||
[
|
||||
[ "client.c", "dd/d93/client_8c.html", "dd/d93/client_8c" ],
|
||||
[ "remote_command_exec_udp_client.c", "d9/ddd/remote__command__exec__udp__client_8c.html", "d9/ddd/remote__command__exec__udp__client_8c" ],
|
||||
[ "remote_command_exec_udp_server.c", "dd/d79/remote__command__exec__udp__server_8c.html", "dd/d79/remote__command__exec__udp__server_8c" ],
|
||||
[ "server.c", "d1/d20/server_8c.html", "d1/d20/server_8c" ],
|
||||
[ "tcp_full_duplex_client.c", "d1/d98/tcp__full__duplex__client_8c.html", "d1/d98/tcp__full__duplex__client_8c" ],
|
||||
[ "tcp_full_duplex_server.c", "d1/d6b/tcp__full__duplex__server_8c.html", "d1/d6b/tcp__full__duplex__server_8c" ],
|
||||
|
16
files.html
16
files.html
@ -99,13 +99,15 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });
|
||||
<tr id="row_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="df/d27/alaw_8c.html" target="_self">alaw.c</a></td><td class="desc">A-law algorithm for encoding and decoding (16bit pcm <=> a-law). This is the implementation of <a href="https://en.wikipedia.org/wiki/G.711" target="_blank">G.711</a> in C </td></tr>
|
||||
<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">►</span><span id="img_1_" class="iconfclosed" onclick="toggleFolder('1_')"> </span><a class="el" href="dir_d20ad0b8de644c123692ba5582cc7a7b.html" target="_self">client_server</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="dd/d93/client_8c.html" target="_self">client.c</a></td><td class="desc">Client side implementation of Server-Client system </td></tr>
|
||||
<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/d20/server_8c.html" target="_self">server.c</a></td><td class="desc">Server side implementation of Server-Client system </td></tr>
|
||||
<tr id="row_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/d98/tcp__full__duplex__client_8c.html" target="_self">tcp_full_duplex_client.c</a></td><td class="desc">Client-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Full Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html" target="_self">tcp_full_duplex_server.c</a></td><td class="desc">Server-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Full Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="da/d07/tcp__half__duplex__client_8c.html" target="_self">tcp_half_duplex_client.c</a></td><td class="desc">Client-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Half Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html" target="_self">tcp_half_duplex_server.c</a></td><td class="desc">Server-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Half Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="da/de6/udp__client_8c.html" target="_self">udp_client.c</a></td><td class="desc">Client side implementation of UDP client-server model </td></tr>
|
||||
<tr id="row_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d8/dca/udp__server_8c.html" target="_self">udp_server.c</a></td><td class="desc">Server side implementation of UDP client-server model </td></tr>
|
||||
<tr id="row_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d9/ddd/remote__command__exec__udp__client_8c.html" target="_self">remote_command_exec_udp_client.c</a></td><td class="desc">Client-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>) </td></tr>
|
||||
<tr id="row_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="dd/d79/remote__command__exec__udp__server_8c.html" target="_self">remote_command_exec_udp_server.c</a></td><td class="desc">Server-side implementation of [Remote Command Execution Using UDP](<a href="https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/">https://www.imperva.com/learn/ddos/udp-user-datagram-protocol/</a>) </td></tr>
|
||||
<tr id="row_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/d20/server_8c.html" target="_self">server.c</a></td><td class="desc">Server side implementation of Server-Client system </td></tr>
|
||||
<tr id="row_1_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/d98/tcp__full__duplex__client_8c.html" target="_self">tcp_full_duplex_client.c</a></td><td class="desc">Client-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Full Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html" target="_self">tcp_full_duplex_server.c</a></td><td class="desc">Server-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Full Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_6_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="da/d07/tcp__half__duplex__client_8c.html" target="_self">tcp_half_duplex_client.c</a></td><td class="desc">Client-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Half Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html" target="_self">tcp_half_duplex_server.c</a></td><td class="desc">Server-side implementation of <a href="http://www.tcpipguide.com/free/t_SimplexFullDuplexandHalfDuplexOperation.htm" target="_blank">TCP Half Duplex Communication</a> </td></tr>
|
||||
<tr id="row_1_8_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="da/de6/udp__client_8c.html" target="_self">udp_client.c</a></td><td class="desc">Client side implementation of UDP client-server model </td></tr>
|
||||
<tr id="row_1_9_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d8/dca/udp__server_8c.html" target="_self">udp_server.c</a></td><td class="desc">Server side implementation of UDP client-server model </td></tr>
|
||||
<tr id="row_2_" class="even"><td class="entry"><span style="width:0px;display:inline-block;"> </span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">►</span><span id="img_2_" class="iconfclosed" onclick="toggleFolder('2_')"> </span><a class="el" href="dir_9babc524d57e25f3d9f4179cabc3599e.html" target="_self">conversions</a></td><td class="desc"></td></tr>
|
||||
<tr id="row_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d7/dd8/c__atoi__str__to__integer_8c.html" target="_self">c_atoi_str_to_integer.c</a></td><td class="desc">Recoding the original atoi function in stdlib.h </td></tr>
|
||||
<tr id="row_2_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icondoc"></span><a class="el" href="d1/dba/decimal__to__any__base_8c.html" target="_self">decimal_to_any_base.c</a></td><td class="desc"><a href="http://codeofthedamned.com/index.php/number-base-conversion" target="_blank">Decimal to any-base</a> is a C function wich convert positive decimal integer to any positive ascii base with the base's alphabet given in input and return it in a dynamically allocated string(recursive way) </td></tr>
|
||||
|
@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('globals_defs.html',''); initResizable(
|
||||
|
||||
|
||||
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
|
||||
<li>PORT : <a class="el" href="dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">client.c</a>, <a class="el" href="d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">server.c</a>, <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_server.c</a>, <a class="el" href="da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_client.c</a>, <a class="el" href="d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_server.c</a></li>
|
||||
<li>PORT : <a class="el" href="dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">client.c</a>, <a class="el" href="d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">remote_command_exec_udp_client.c</a>, <a class="el" href="dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">remote_command_exec_udp_server.c</a>, <a class="el" href="d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">server.c</a>, <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_server.c</a>, <a class="el" href="da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_client.c</a>, <a class="el" href="d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_server.c</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('globals_e.html',''); initResizable();
|
||||
<li>encode() : <a class="el" href="df/d27/alaw_8c.html#a751d8e2c1975706e4d876316518c54c4">alaw.c</a></li>
|
||||
<li>endProgramAbruptly() : <a class="el" href="d3/d78/words__alphabetical_8c.html#a5157a5b4e164f934602fa78413504029">words_alphabetical.c</a></li>
|
||||
<li>EPSILON : <a class="el" href="de/d5a/group__quaternions.html#ga002b2f4894492820fe708b1b7e7c5e70">geometry_datatypes.h</a>, <a class="el" href="d7/d50/qr__eigen__values_8c.html#a002b2f4894492820fe708b1b7e7c5e70">qr_eigen_values.c</a></li>
|
||||
<li>error() : <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_server.c</a></li>
|
||||
<li>error() : <a class="el" href="d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">remote_command_exec_udp_client.c</a>, <a class="el" href="dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">remote_command_exec_udp_server.c</a>, <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_server.c</a></li>
|
||||
<li>euler : <a class="el" href="dc/d9a/group__quats.html#ga8cc5e5b7a5fa492423ecf034c8bb52bd">geometry_datatypes.h</a></li>
|
||||
<li>euler_from_quat() : <a class="el" href="dc/d9a/group__quats.html#ga1afd165100e9b02b86e3bd11b50f3b06">quaternions.c</a></li>
|
||||
<li>evaluate() : <a class="el" href="df/d43/postfix__evaluation_8c.html#a4494492c8fc2509f602acc8228a3b623">postfix_evaluation.c</a></li>
|
||||
|
@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('globals_func_e.html',''); initResizabl
|
||||
<li>eigen_values() : <a class="el" href="d7/d50/qr__eigen__values_8c.html#a0d8ed79786d17df48396b333c09d05bb">qr_eigen_values.c</a></li>
|
||||
<li>encode() : <a class="el" href="df/d27/alaw_8c.html#a751d8e2c1975706e4d876316518c54c4">alaw.c</a></li>
|
||||
<li>endProgramAbruptly() : <a class="el" href="d3/d78/words__alphabetical_8c.html#a5157a5b4e164f934602fa78413504029">words_alphabetical.c</a></li>
|
||||
<li>error() : <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_server.c</a></li>
|
||||
<li>error() : <a class="el" href="d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">remote_command_exec_udp_client.c</a>, <a class="el" href="dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">remote_command_exec_udp_server.c</a>, <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce">tcp_half_duplex_server.c</a></li>
|
||||
<li>euler_from_quat() : <a class="el" href="dc/d9a/group__quats.html#ga1afd165100e9b02b86e3bd11b50f3b06">quaternions.c</a></li>
|
||||
<li>evaluate() : <a class="el" href="df/d43/postfix__evaluation_8c.html#a4494492c8fc2509f602acc8228a3b623">postfix_evaluation.c</a></li>
|
||||
<li>exact_solution() : <a class="el" href="d4/d07/ode__forward__euler_8c.html#a8caee977b26888d34040b122e0e28e3a">ode_forward_euler.c</a>, <a class="el" href="d1/dc2/ode__midpoint__euler_8c.html#a8caee977b26888d34040b122e0e28e3a">ode_midpoint_euler.c</a>, <a class="el" href="d4/d99/ode__semi__implicit__euler_8c.html#a8caee977b26888d34040b122e0e28e3a">ode_semi_implicit_euler.c</a></li>
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('globals_p.html',''); initResizable();
|
||||
<li>poly_add() : <a class="el" href="d0/dcb/poly__add_8c.html#a6ff38afe4720527c9513139cbab460af">poly_add.c</a></li>
|
||||
<li>poly_function() : <a class="el" href="da/d38/durand__kerner__roots_8c.html#a321f9781a9744ccdaf0aba89f35ec29c">durand_kerner_roots.c</a></li>
|
||||
<li>pop() : <a class="el" href="db/d0c/infix__to__postfix_8c.html#a940cdcd27c40699eebb4ef113b2d9451">infix_to_postfix.c</a>, <a class="el" href="da/d96/infix__to__postfix2_8c.html#a312e7f6c761a199c1369fbe651e084f0">infix_to_postfix2.c</a>, <a class="el" href="df/d43/postfix__evaluation_8c.html#a8546e4b3f61be1f09ce47f428116ad7d">postfix_evaluation.c</a></li>
|
||||
<li>PORT : <a class="el" href="dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">client.c</a>, <a class="el" href="d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">server.c</a>, <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_server.c</a>, <a class="el" href="da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_client.c</a>, <a class="el" href="d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_server.c</a></li>
|
||||
<li>PORT : <a class="el" href="dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">client.c</a>, <a class="el" href="d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">remote_command_exec_udp_client.c</a>, <a class="el" href="dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">remote_command_exec_udp_server.c</a>, <a class="el" href="d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">server.c</a>, <a class="el" href="d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_client.c</a>, <a class="el" href="d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_full_duplex_server.c</a>, <a class="el" href="da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_client.c</a>, <a class="el" href="d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">tcp_half_duplex_server.c</a>, <a class="el" href="da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_client.c</a>, <a class="el" href="d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2">udp_server.c</a></li>
|
||||
<li>positionBoat() : <a class="el" href="db/de2/naval__battle_8c.html#a3f7d3dc5931fba6164e73057859094d9">naval_battle.c</a></li>
|
||||
<li>postorder_display() : <a class="el" href="df/d3c/threaded__binary__trees_8c.html#a5a82ae0ee13788be51ca4ba6cddb0719">threaded_binary_trees.c</a></li>
|
||||
<li>power_of_ten() : <a class="el" href="d9/deb/min__printf_8h.html#a8421f89b76edcf21292c5100bfca586b">min_printf.h</a></li>
|
||||
|
@ -130,7 +130,7 @@ var NAVTREEINDEX =
|
||||
"annotated.html",
|
||||
"d4/d99/ode__semi__implicit__euler_8c.html",
|
||||
"d9/dc9/hash__crc32_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4",
|
||||
"dd/d8c/adaline__learning_8c.html#ab4ecb3accf5d9e0263087e7265bbe3a9"
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63"
|
||||
];
|
||||
|
||||
var SYNCONMSG = 'click to disable panel synchronisation';
|
||||
|
@ -61,12 +61,12 @@ var NAVTREEINDEX0 =
|
||||
"d0/df3/6_8c.html#aa8dca7b867074164d5f45b0f3851269d":[15,0,11,0,0,2],
|
||||
"d0/df3/6_8c.html#afdf3bfe2dc8aadac13c7e6d051d3bd5d":[15,0,11,0,0,0],
|
||||
"d1/d12/md_data_structures_stack__r_e_a_d_m_e.html":[6],
|
||||
"d1/d20/server_8c.html":[15,0,1,1],
|
||||
"d1/d20/server_8c.html#a1e43924adac4ae865aa0acf79710261c":[15,0,1,1,2],
|
||||
"d1/d20/server_8c.html#a392fb874e547e582e9c66a08a1f23326":[15,0,1,1,0],
|
||||
"d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,1,1],
|
||||
"d1/d20/server_8c.html#ac17020a38607ab29ce18939d5194a32a":[15,0,1,1,3],
|
||||
"d1/d20/server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,1,4],
|
||||
"d1/d20/server_8c.html":[15,0,1,3],
|
||||
"d1/d20/server_8c.html#a1e43924adac4ae865aa0acf79710261c":[15,0,1,3,2],
|
||||
"d1/d20/server_8c.html#a392fb874e547e582e9c66a08a1f23326":[15,0,1,3,0],
|
||||
"d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,3,1],
|
||||
"d1/d20/server_8c.html#ac17020a38607ab29ce18939d5194a32a":[15,0,1,3,3],
|
||||
"d1/d20/server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,3,4],
|
||||
"d1/d2f/problem__7_2sol_8c.html":[15,0,15,20,0],
|
||||
"d1/d2f/problem__7_2sol_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[15,0,15,20,0,0],
|
||||
"d1/d5e/structobservation.html":[13,2,1,0],
|
||||
@ -83,19 +83,19 @@ var NAVTREEINDEX0 =
|
||||
"d1/d6b/group__kohonen__2d.html#gadc22d512c00a9f5799ee067f4fb90b4b":[13,2,2,4],
|
||||
"d1/d6b/group__kohonen__2d.html#gaf5ce14f026d6d231bef29161bac2b485":[13,2,2,3],
|
||||
"d1/d6b/group__kohonen__2d.html#gaffe776513b24d84b39af8ab0930fef7f":[13,2,2,1],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html":[15,0,1,3],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,3,0],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,3,1],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,3,2],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html":[15,0,1,5],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,5,0],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,5,1],
|
||||
"d1/d6b/tcp__full__duplex__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,5,2],
|
||||
"d1/d94/odd__even__sort_8c.html":[15,0,17,8],
|
||||
"d1/d94/odd__even__sort_8c.html#a17761a0788916faded6e2ca1f478ad33":[15,0,17,8,1],
|
||||
"d1/d94/odd__even__sort_8c.html#aa8dca7b867074164d5f45b0f3851269d":[15,0,17,8,3],
|
||||
"d1/d94/odd__even__sort_8c.html#ac2eee54959bc040cfcb56d2d8047853a":[15,0,17,8,2],
|
||||
"d1/d94/odd__even__sort_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,17,8,0],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html":[15,0,1,2],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,2,0],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,2,1],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,2,2],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html":[15,0,1,4],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,4,0],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,4,1],
|
||||
"d1/d98/tcp__full__duplex__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,4,2],
|
||||
"d1/d99/structcluster.html":[13,2,1,1],
|
||||
"d1/d99/structcluster.html#a10fa7010c12d0f03a422d68321495479":[13,2,1,1,2],
|
||||
"d1/d99/structcluster.html#a13278ef636c1d9bd9ce8fad736f4c570":[13,2,1,1,1],
|
||||
|
@ -99,10 +99,10 @@ var NAVTREEINDEX1 =
|
||||
"d5/df4/group__sudoku.html#gadfe0ed5085b4775d8fa00b434cc0fdfc":[13,4,7],
|
||||
"d6/d1b/sol4_8c.html":[15,0,15,0,3],
|
||||
"d6/d1b/sol4_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,15,0,3,0],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html":[15,0,1,5],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,5,0],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,5,1],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,5,2],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html":[15,0,1,7],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,7,0],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,7,1],
|
||||
"d6/d2b/tcp__half__duplex__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,7,2],
|
||||
"d6/d2e/cartesian__to__polar_8c.html":[15,0,13,1],
|
||||
"d6/d2e/cartesian__to__polar_8c.html#a525335710b53cb064ca56b936120431e":[15,0,13,1,0],
|
||||
"d6/d2e/cartesian__to__polar_8c.html#a60e62b809ca9dcb1b20a140b30d30f60":[15,0,13,1,1],
|
||||
@ -232,10 +232,10 @@ var NAVTREEINDEX1 =
|
||||
"d8/db8/structkohonen__array__3d.html#a16720581653fa9a34d1029e7229a7377":[13,2,2,0,1],
|
||||
"d8/db8/structkohonen__array__3d.html#a888d7e007b38c91c7933e12a9566af1d":[13,2,2,0,2],
|
||||
"d8/db8/structkohonen__array__3d.html#ad546baa2e81c6196d5f1dc0fe2e5bd59":[13,2,2,0,0],
|
||||
"d8/dca/udp__server_8c.html":[15,0,1,7],
|
||||
"d8/dca/udp__server_8c.html#a3e937c42922f7601edb17b747602c471":[15,0,1,7,0],
|
||||
"d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,7,1],
|
||||
"d8/dca/udp__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,7,2],
|
||||
"d8/dca/udp__server_8c.html":[15,0,1,9],
|
||||
"d8/dca/udp__server_8c.html#a3e937c42922f7601edb17b747602c471":[15,0,1,9,0],
|
||||
"d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,9,1],
|
||||
"d8/dca/udp__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,9,2],
|
||||
"d8/de0/problem__9_2sol2_8c.html":[15,0,15,22,1],
|
||||
"d8/de0/problem__9_2sol2_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[15,0,15,22,1,0],
|
||||
"d9/d41/md_data_structures_array__r_e_a_d_m_e.html":[4],
|
||||
|
@ -12,6 +12,10 @@ var NAVTREEINDEX2 =
|
||||
"d9/dd7/struct__cantor__set.html#a2f7f9f19125725d3e5673fdb4ac8cfb1":[14,0,1,1],
|
||||
"d9/dd7/struct__cantor__set.html#abd2176c3cc3a1d85d15bbeaace35fa03":[14,0,1,2],
|
||||
"d9/dd7/struct__cantor__set.html#acfc25ab716a3c79be8a5a4cab94e8def":[14,0,1,0],
|
||||
"d9/ddd/remote__command__exec__udp__client_8c.html":[15,0,1,1],
|
||||
"d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,1,0],
|
||||
"d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,1,1],
|
||||
"d9/ddd/remote__command__exec__udp__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,1,2],
|
||||
"d9/deb/min__printf_8h.html":[15,0,4,2],
|
||||
"d9/deb/min__printf_8h.html#a0a848efdf2ee124bba62e056eb9ab824":[15,0,4,2,10],
|
||||
"d9/deb/min__printf_8h.html#a33e08c05f8c656a0fee465c2e8d2ecf9":[15,0,4,2,7],
|
||||
@ -39,10 +43,10 @@ var NAVTREEINDEX2 =
|
||||
"da/d02/binary__search__tree_8c.html#ae4a66d8b0c2b0d626aea45977e358c83":[15,0,3,1,0,5],
|
||||
"da/d02/binary__search__tree_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,3,1,0,8],
|
||||
"da/d02/binary__search__tree_8c.html#af4aeda155dbe167f1c1cf38cb65bf324":[15,0,3,1,0,1],
|
||||
"da/d07/tcp__half__duplex__client_8c.html":[15,0,1,4],
|
||||
"da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,4,0],
|
||||
"da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,4,1],
|
||||
"da/d07/tcp__half__duplex__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,4,2],
|
||||
"da/d07/tcp__half__duplex__client_8c.html":[15,0,1,6],
|
||||
"da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,6,0],
|
||||
"da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,6,1],
|
||||
"da/d07/tcp__half__duplex__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,6,2],
|
||||
"da/d23/list_8h_source.html":[15,0,3,7,0],
|
||||
"da/d2a/group__adaline.html":[13,2,0],
|
||||
"da/d2a/group__adaline.html#ga20d3642e0a87f36fdb7bf91b023cd166":[13,2,0,5],
|
||||
@ -98,10 +102,10 @@ var NAVTREEINDEX2 =
|
||||
"da/da0/segment__tree_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,3,1,1,3],
|
||||
"da/da0/segment__tree_8c.html#af20a9f373083d3f701e1cd92560cef01":[15,0,3,1,1,6],
|
||||
"da/da0/segment__tree_8c.html#af61bd96660cb53f49f28d60a5f1d0c91":[15,0,3,1,1,9],
|
||||
"da/de6/udp__client_8c.html":[15,0,1,6],
|
||||
"da/de6/udp__client_8c.html#a3e937c42922f7601edb17b747602c471":[15,0,1,6,0],
|
||||
"da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,6,1],
|
||||
"da/de6/udp__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,6,2],
|
||||
"da/de6/udp__client_8c.html":[15,0,1,8],
|
||||
"da/de6/udp__client_8c.html#a3e937c42922f7601edb17b747602c471":[15,0,1,8,0],
|
||||
"da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,8,1],
|
||||
"da/de6/udp__client_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,8,2],
|
||||
"db/d01/problem__13_2sol1_8c.html":[15,0,15,3,0],
|
||||
"db/d01/problem__13_2sol1_8c.html#a248adc917818cc6666d8bc679a660319":[15,0,15,3,0,3],
|
||||
"db/d01/problem__13_2sol1_8c.html#a840291bc02cba5474a4cb46a9b9566fe":[15,0,15,3,0,2],
|
||||
@ -238,16 +242,12 @@ var NAVTREEINDEX2 =
|
||||
"dd/d53/int__to__string_8c.html#aa8dca7b867074164d5f45b0f3851269d":[15,0,2,6,2],
|
||||
"dd/d53/int__to__string_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,2,6,1],
|
||||
"dd/d53/int__to__string_8c.html#aeb4be1a1db1c5fea06e9d8b87e6c3973":[15,0,2,6,0],
|
||||
"dd/d79/remote__command__exec__udp__server_8c.html":[15,0,1,2],
|
||||
"dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2":[15,0,1,2,0],
|
||||
"dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce":[15,0,1,2,1],
|
||||
"dd/d79/remote__command__exec__udp__server_8c.html#ae66f6b31b5ad750f1fe042a706a4e3d4":[15,0,1,2,2],
|
||||
"dd/d7a/group__matrix.html":[13,0,1],
|
||||
"dd/d7a/group__matrix.html#ga9f844010cb96591fa94c9d533a500ab7":[13,0,1,1],
|
||||
"dd/d8b/problem__22_2sol1_8c.html":[15,0,15,11,0],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[15,0,15,11,0,3],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63":[15,0,15,11,0,4],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a6cb9b08aacb61416795ee78bfceacd38":[15,0,15,11,0,1],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#ae359b8a4656b164c91ef91a084c15c9d":[15,0,15,11,0,2],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#afd709f201d7643c3909621f620ea648a":[15,0,15,11,0,0],
|
||||
"dd/d8c/adaline__learning_8c.html":[15,0,12,0],
|
||||
"dd/d8c/adaline__learning_8c.html#a05cc9a0acb524fde727a4d7b4a747ee6":[15,0,12,0,11],
|
||||
"dd/d8c/adaline__learning_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[15,0,12,0,8],
|
||||
"dd/d8c/adaline__learning_8c.html#a3f37b9f073f7e57fd0b39d70718af1b1":[15,0,12,0,12]
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[15,0,15,11,0,3]
|
||||
};
|
||||
|
@ -1,5 +1,13 @@
|
||||
var NAVTREEINDEX3 =
|
||||
{
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a5bc3659aa0949ea33118c95b1dee5f63":[15,0,15,11,0,4],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#a6cb9b08aacb61416795ee78bfceacd38":[15,0,15,11,0,1],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#ae359b8a4656b164c91ef91a084c15c9d":[15,0,15,11,0,2],
|
||||
"dd/d8b/problem__22_2sol1_8c.html#afd709f201d7643c3909621f620ea648a":[15,0,15,11,0,0],
|
||||
"dd/d8c/adaline__learning_8c.html":[15,0,12,0],
|
||||
"dd/d8c/adaline__learning_8c.html#a05cc9a0acb524fde727a4d7b4a747ee6":[15,0,12,0,11],
|
||||
"dd/d8c/adaline__learning_8c.html#a3c04138a5bfe5d72780bb7e82a18e627":[15,0,12,0,8],
|
||||
"dd/d8c/adaline__learning_8c.html#a3f37b9f073f7e57fd0b39d70718af1b1":[15,0,12,0,12],
|
||||
"dd/d8c/adaline__learning_8c.html#ab4ecb3accf5d9e0263087e7265bbe3a9":[15,0,12,0,10],
|
||||
"dd/d93/client_8c.html":[15,0,1,0],
|
||||
"dd/d93/client_8c.html#a1e43924adac4ae865aa0acf79710261c":[15,0,1,0,2],
|
||||
@ -167,8 +175,8 @@ var NAVTREEINDEX3 =
|
||||
"files.html":[15,0],
|
||||
"functions.html":[14,2,0],
|
||||
"functions_vars.html":[14,2,1],
|
||||
"globals.html":[15,1,0],
|
||||
"globals.html":[15,1,0,0],
|
||||
"globals.html":[15,1,0],
|
||||
"globals_a.html":[15,1,0,1],
|
||||
"globals_b.html":[15,1,0,2],
|
||||
"globals_c.html":[15,1,0,3],
|
||||
|
@ -7,7 +7,7 @@ var searchData=
|
||||
['poly_5fadd_2ec_4',['poly_add.c',['../d0/dcb/poly__add_8c.html',1,'']]],
|
||||
['poly_5ffunction_5',['poly_function',['../da/d38/durand__kerner__roots_8c.html#a321f9781a9744ccdaf0aba89f35ec29c',1,'durand_kerner_roots.c']]],
|
||||
['pop_6',['pop',['../db/d0c/infix__to__postfix_8c.html#a940cdcd27c40699eebb4ef113b2d9451',1,'pop(struct Stack *p): infix_to_postfix.c'],['../da/d96/infix__to__postfix2_8c.html#a312e7f6c761a199c1369fbe651e084f0',1,'pop(): infix_to_postfix2.c'],['../df/d43/postfix__evaluation_8c.html#a8546e4b3f61be1f09ce47f428116ad7d',1,'pop(): postfix_evaluation.c']]],
|
||||
['port_7',['PORT',['../dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): client.c'],['../d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): server.c'],['../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_server.c'],['../da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_client.c'],['../d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_server.c']]],
|
||||
['port_7',['PORT',['../d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_server.c'],['../da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_client.c'],['../dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): client.c'],['../d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): remote_command_exec_udp_client.c'],['../dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): remote_command_exec_udp_server.c'],['../d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): server.c'],['../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_server.c']]],
|
||||
['positionboat_8',['positionBoat',['../db/de2/naval__battle_8c.html#a3f7d3dc5931fba6164e73057859094d9',1,'naval_battle.c']]],
|
||||
['postfix_5fevaluation_2ec_9',['postfix_evaluation.c',['../df/d43/postfix__evaluation_8c.html',1,'']]],
|
||||
['postorder_5fdisplay_10',['postorder_display',['../df/d3c/threaded__binary__trees_8c.html#a5a82ae0ee13788be51ca4ba6cddb0719',1,'threaded_binary_trees.c']]],
|
||||
@ -30,7 +30,7 @@ var searchData=
|
||||
['print_5fstring_27',['print_string',['../d9/deb/min__printf_8h.html#af569209570eca8bc6770fb7d9dc873e6',1,'min_printf.h']]],
|
||||
['print_5fvector_28',['print_vector',['../de/d7b/group__vec__3d.html#gae25e1f2e973933bef65838601e2de0af',1,'vectors_3d.c']]],
|
||||
['printeps_29',['printEPS',['../d6/d76/k__means__clustering_8c.html#a5b4ba704e02672e59cfa35f82e3db28a',1,'k_means_clustering.c']]],
|
||||
['printleaks_30',['printLeaks',['../d2/ddd/malloc__dbg_8h.html#abfd0a4452069af4cfefe4a5d037e92ef',1,'printLeaks(void): malloc_dbg.c'],['../db/d84/malloc__dbg_8c.html#a2a47e4c38db8c00b80248e5535adf797',1,'printLeaks(): malloc_dbg.c']]],
|
||||
['printleaks_30',['printLeaks',['../db/d84/malloc__dbg_8c.html#a2a47e4c38db8c00b80248e5535adf797',1,'printLeaks(): malloc_dbg.c'],['../d2/ddd/malloc__dbg_8h.html#abfd0a4452069af4cfefe4a5d037e92ef',1,'printLeaks(void): malloc_dbg.c']]],
|
||||
['printmessage_31',['printMessage',['../db/de2/naval__battle_8c.html#a521043b369238e618dcc9364b40448ef',1,'naval_battle.c']]],
|
||||
['printmessagescore_32',['printMessageScore',['../db/de2/naval__battle_8c.html#a2d65de2c86c7015d7ca400dfca0f25dc',1,'naval_battle.c']]],
|
||||
['printpositioning_33',['printPositioning',['../db/de2/naval__battle_8c.html#a5c84d83e31ca6a320b6ea8081402686a',1,'naval_battle.c']]],
|
||||
|
@ -4,13 +4,15 @@ var searchData=
|
||||
['real_1',['real',['../d7/dfd/structdual__quat__.html#ad663036ace6a586f90a2f89386f7731a',1,'dual_quat_']]],
|
||||
['realtime_5fstats_2ec_2',['realtime_stats.c',['../dc/d47/realtime__stats_8c.html',1,'']]],
|
||||
['recursioninsertionsort_3',['RecursionInsertionSort',['../d5/d4c/group__sorting.html#ga98666b73777e308fb06a3c489ce25359',1,'insertion_sort_recursive.c']]],
|
||||
['remove_5fdigits_4',['remove_digits',['../db/d80/problem__20_2sol1_8c.html#a54a02c4b963fdb16f24959e0137763f1',1,'sol1.c']]],
|
||||
['reverse_5fstr_5',['reverse_str',['../d9/deb/min__printf_8h.html#a8d68ec60643cacdb402176549565754e',1,'min_printf.h']]],
|
||||
['right_6',['right',['../d5/da1/structnode.html#a51e160f22dc6064bac4a4f9f1d931c2c',1,'node::right()'],['../db/d8b/struct_node.html#af99e7102380da88d7c079fa264230cf4',1,'Node::right()']]],
|
||||
['rlink_7',['rlink',['../db/d8b/struct_node.html#a0ed3c7305b43527f0f237bbfd438b8f7',1,'Node']]],
|
||||
['roll_8',['roll',['../d2/de8/structeuler__.html#a3f1b77e489be443a8d84a84082b8092e',1,'euler_']]],
|
||||
['root_9',['root',['../dd/d06/structsegment__tree.html#aa18d7cb422873a807707b26448dce7cd',1,'segment_tree']]],
|
||||
['row1_10',['row1',['../d9/d8b/structmat__3x3__.html#ac74f33a2e1ad1f6db74d94807cf1f64e',1,'mat_3x3_']]],
|
||||
['row2_11',['row2',['../d9/d8b/structmat__3x3__.html#a8d7ae8fbcc408e3c30e9d64bbd28feaf',1,'mat_3x3_']]],
|
||||
['row3_12',['row3',['../d9/d8b/structmat__3x3__.html#a490bb6be52ea95b333b55b236af41563',1,'mat_3x3_']]]
|
||||
['remote_5fcommand_5fexec_5fudp_5fclient_2ec_4',['remote_command_exec_udp_client.c',['../d9/ddd/remote__command__exec__udp__client_8c.html',1,'']]],
|
||||
['remote_5fcommand_5fexec_5fudp_5fserver_2ec_5',['remote_command_exec_udp_server.c',['../dd/d79/remote__command__exec__udp__server_8c.html',1,'']]],
|
||||
['remove_5fdigits_6',['remove_digits',['../db/d80/problem__20_2sol1_8c.html#a54a02c4b963fdb16f24959e0137763f1',1,'sol1.c']]],
|
||||
['reverse_5fstr_7',['reverse_str',['../d9/deb/min__printf_8h.html#a8d68ec60643cacdb402176549565754e',1,'min_printf.h']]],
|
||||
['right_8',['right',['../d5/da1/structnode.html#a51e160f22dc6064bac4a4f9f1d931c2c',1,'node::right()'],['../db/d8b/struct_node.html#af99e7102380da88d7c079fa264230cf4',1,'Node::right()']]],
|
||||
['rlink_9',['rlink',['../db/d8b/struct_node.html#a0ed3c7305b43527f0f237bbfd438b8f7',1,'Node']]],
|
||||
['roll_10',['roll',['../d2/de8/structeuler__.html#a3f1b77e489be443a8d84a84082b8092e',1,'euler_']]],
|
||||
['root_11',['root',['../dd/d06/structsegment__tree.html#aa18d7cb422873a807707b26448dce7cd',1,'segment_tree']]],
|
||||
['row1_12',['row1',['../d9/d8b/structmat__3x3__.html#ac74f33a2e1ad1f6db74d94807cf1f64e',1,'mat_3x3_']]],
|
||||
['row2_13',['row2',['../d9/d8b/structmat__3x3__.html#a8d7ae8fbcc408e3c30e9d64bbd28feaf',1,'mat_3x3_']]],
|
||||
['row3_14',['row3',['../d9/d8b/structmat__3x3__.html#a490bb6be52ea95b333b55b236af41563',1,'mat_3x3_']]]
|
||||
];
|
||||
|
@ -11,7 +11,7 @@ var searchData=
|
||||
['end_8',['end',['../d9/dd7/struct__cantor__set.html#acfc25ab716a3c79be8a5a4cab94e8def',1,'_cantor_set']]],
|
||||
['endprogramabruptly_9',['endProgramAbruptly',['../d3/d78/words__alphabetical_8c.html#a5157a5b4e164f934602fa78413504029',1,'words_alphabetical.c']]],
|
||||
['epsilon_10',['EPSILON',['../de/d5a/group__quaternions.html#ga002b2f4894492820fe708b1b7e7c5e70',1,'EPSILON(): geometry_datatypes.h'],['../d7/d50/qr__eigen__values_8c.html#a002b2f4894492820fe708b1b7e7c5e70',1,'EPSILON(): qr_eigen_values.c']]],
|
||||
['error_11',['error',['../d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_server.c']]],
|
||||
['error_11',['error',['../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): remote_command_exec_udp_client.c'],['../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): remote_command_exec_udp_server.c'],['../d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_server.c']]],
|
||||
['eta_12',['eta',['../d2/daa/structadaline.html#a85dbd7cce6195d11ebb388220b96bde2',1,'adaline']]],
|
||||
['euler_13',['euler',['../dc/d9a/group__quats.html#ga8cc5e5b7a5fa492423ecf034c8bb52bd',1,'geometry_datatypes.h']]],
|
||||
['euler_5f_14',['euler_',['../d2/de8/structeuler__.html',1,'']]],
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
var searchData=
|
||||
[
|
||||
['port_0',['PORT',['../dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): client.c'],['../d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): server.c'],['../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_server.c'],['../da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_client.c'],['../d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_server.c']]]
|
||||
['port_0',['PORT',['../dd/d93/client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): client.c'],['../d9/ddd/remote__command__exec__udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): remote_command_exec_udp_client.c'],['../dd/d79/remote__command__exec__udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): remote_command_exec_udp_server.c'],['../d1/d20/server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): server.c'],['../d1/d98/tcp__full__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): tcp_half_duplex_server.c'],['../da/de6/udp__client_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_client.c'],['../d8/dca/udp__server_8c.html#a614217d263be1fb1a5f76e2ff7be19a2',1,'PORT(): udp_server.c']]]
|
||||
];
|
||||
|
@ -1,4 +1,6 @@
|
||||
var searchData=
|
||||
[
|
||||
['realtime_5fstats_2ec_0',['realtime_stats.c',['../dc/d47/realtime__stats_8c.html',1,'']]]
|
||||
['realtime_5fstats_2ec_0',['realtime_stats.c',['../dc/d47/realtime__stats_8c.html',1,'']]],
|
||||
['remote_5fcommand_5fexec_5fudp_5fclient_2ec_1',['remote_command_exec_udp_client.c',['../d9/ddd/remote__command__exec__udp__client_8c.html',1,'']]],
|
||||
['remote_5fcommand_5fexec_5fudp_5fserver_2ec_2',['remote_command_exec_udp_server.c',['../dd/d79/remote__command__exec__udp__server_8c.html',1,'']]]
|
||||
];
|
||||
|
@ -4,7 +4,7 @@ var searchData=
|
||||
['eigen_5fvalues_1',['eigen_values',['../d7/d50/qr__eigen__values_8c.html#a0d8ed79786d17df48396b333c09d05bb',1,'qr_eigen_values.c']]],
|
||||
['encode_2',['encode',['../df/d27/alaw_8c.html#a751d8e2c1975706e4d876316518c54c4',1,'alaw.c']]],
|
||||
['endprogramabruptly_3',['endProgramAbruptly',['../d3/d78/words__alphabetical_8c.html#a5157a5b4e164f934602fa78413504029',1,'words_alphabetical.c']]],
|
||||
['error_4',['error',['../d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_server.c']]],
|
||||
['error_4',['error',['../d9/ddd/remote__command__exec__udp__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): remote_command_exec_udp_client.c'],['../dd/d79/remote__command__exec__udp__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): remote_command_exec_udp_server.c'],['../d1/d98/tcp__full__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_client.c'],['../d1/d6b/tcp__full__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_full_duplex_server.c'],['../da/d07/tcp__half__duplex__client_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_client.c'],['../d6/d2b/tcp__half__duplex__server_8c.html#a7e15c8e2885871839fc2b820dfbdb4ce',1,'error(): tcp_half_duplex_server.c']]],
|
||||
['euler_5ffrom_5fquat_5',['euler_from_quat',['../dc/d9a/group__quats.html#ga1afd165100e9b02b86e3bd11b50f3b06',1,'quaternions.c']]],
|
||||
['evaluate_6',['evaluate',['../df/d43/postfix__evaluation_8c.html#a4494492c8fc2509f602acc8228a3b623',1,'postfix_evaluation.c']]],
|
||||
['exact_5fsolution_7',['exact_solution',['../d4/d07/ode__forward__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_forward_euler.c'],['../d1/dc2/ode__midpoint__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_midpoint_euler.c'],['../d4/d99/ode__semi__implicit__euler_8c.html#a8caee977b26888d34040b122e0e28e3a',1,'exact_solution(const double *x, double *y): ode_semi_implicit_euler.c']]],
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user