<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Interfacing FRDM-KL25Z with Arduino Ethernet Shield R3 on Processor Expert, Part 3: Embedded Web Server</title><link>https://community.element14.com/products/devtools/kinetiskl2freedomboard/w/documents/16853/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-3-embedded-web-server</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Interfacing FRDM-KL25Z with Arduino Ethernet Shield R3 on Processor Expert, Part 3: Embedded Web Server</title><link>https://community.element14.com/products/devtools/kinetiskl2freedomboard/w/documents/16853/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-3-embedded-web-server</link><pubDate>Tue, 18 Mar 2014 13:28:14 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2e768a8a-3ede-4228-87e7-2072d06c833b</guid><dc:creator>bheemarao</dc:creator><comments>https://community.element14.com/products/devtools/kinetiskl2freedomboard/w/documents/16853/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-3-embedded-web-server#comments</comments><description>Current Revision posted to Documents by bheemarao on 3/18/2014 1:28:14 PM&lt;br /&gt;
&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;span style="font-size:10pt;color:#ff6600;"&gt;&lt;em style="font-weight:inherit;font-family:inherit;"&gt;This tutorial was extracted from Erich Styger blog &lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#373737;"&gt;&lt;a class="jive-link-external-small" href="http://mcuoneclipse.wordpress.com/" rel="nofollow" style="font-weight:inherit;font-style:inherit;font-family:inherit;color:#592d5f;" target="_blank"&gt;&lt;span style="font-weight:inherit;font-style:inherit;font-family:inherit;"&gt;&lt;em style="font-weight:inherit;font-family:inherit;"&gt;http://mcuoneclipse.wordpress.com&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#ff6600;"&gt;&lt;em style="font-weight:inherit;font-family:inherit;"&gt; with his agreement.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;This is Part 3 of an ongoing tutorial to use the Arduino Ethernet Shield R3 with a Freescale FRDM-KL25Z board (or any other board you like).&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;In &lt;span style="color:#1982d1;font-style:inherit;font-family:inherit;font-weight:inherit;"&gt;&lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16851/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-1-sd-card" target="_blank"&gt;Part 1&lt;/a&gt;&lt;/span&gt; I worked on the SD card, in &lt;span style="color:#1982d1;font-style:inherit;font-family:inherit;font-weight:inherit;"&gt;&lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16852/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-2-ping" target="_blank"&gt;Part 2&lt;/a&gt;&lt;/span&gt; I have added basic network connection. Now time to run a web server with my &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-yBYIn3fi-linked" style="white-space:nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2191861&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;&lt;span class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2191861&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;FRDM-KL25Z&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" id="addProduct-yBYIn3fi-unlinked"&gt;FRDM-KL25Z&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/16x16/__key/communityserver-wikis-components-files/00-00-00-01-49/2425.contentimage_5F00_1.png"&gt;&lt;img alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/49/2425.contentimage_1.png-16x16.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=VTyonY2CKNHCkL%2FDw2E1rXmjntQE11s1sbVKZPMwz30%3D&amp;amp;se=2026-08-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zGEM7pHL10Vt71gae75OdA==" style="max-height: 16px;max-width: 16px;" /&gt;&lt;/a&gt;&lt;/span&gt;. With this, I can get access to my board through the network, and the board will host a web page where I can do pretty much everything: showing status, or adding functions to turn on things like an LED.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/web-server-with-w5100-and-frdm-kl25z.png" rel="nofollow ugc noopener" style="font-family:inherit;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img loading="lazy" alt="Web Server with W5100 on FRDM-KL25Z" class="wp-image-10572 jiveImage size-full" height="289" src="http://mcuoneclipse.files.wordpress.com/2014/01/web-server-with-w5100-and-frdm-kl25z.png?w=584&amp;amp;h=336" style="border-color:#eeeeee;padding:6px;width:503px;height:289.3972602739726px;" width="503" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web Server with W5100 on FRDM-KL25Z&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;List of Tutorials&lt;/h1&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;&lt;span style="color:#1982d1;font-style:inherit;font-family:inherit;font-weight:inherit;"&gt;&lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16851/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-1-sd-card" target="_blank"&gt;FRDM with Arduino Ethernet Shield R3, Part 1: SD Card&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1982d1;font-style:inherit;font-family:inherit;font-weight:inherit;"&gt;&lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16852/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-2-ping" target="_blank"&gt;FRDM with Arduino Ethernet Shield R3, Part 2: Ping&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1982d1;font-style:inherit;font-family:inherit;font-weight:inherit;"&gt;&lt;a class="jive-link-external-small" href="#" target="_blank"&gt;FRDM with Arduino Ethernet Shield R3, Part 3: Embedded Web Server&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;W5100 as Web Server&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The &lt;span style="font-family:inherit;font-style:inherit;"&gt;&lt;strong&gt;&lt;a class="jive-link-external-small" href="http://www.wiznet.co.kr/Sub_Modules/en/product/product_detail.asp?Refid=82&amp;amp;page=1&amp;amp;cate1=5&amp;amp;cate2=7&amp;amp;cate3=26&amp;amp;pid=1011&amp;amp;cType=2" rel="nofollow ugc noopener" style="font-family:inherit;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;Wiznet W5100 Ethernet Chip&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; on the &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-5e9p9Nlo-linked" style="white-space:nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2212783&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;&lt;span class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2212783&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;Arduino Ethernet Shield R3&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" id="addProduct-5e9p9Nlo-unlinked"&gt;Arduino Ethernet Shield R3&lt;/span&gt;&lt;/span&gt; makes it easy to host a web server with a small microcontroller: the heavy protocol lifting is implemented in &lt;/span&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;line-height:1.5em;"&gt;the W5100.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;line-height:1.5em;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/frdm-kl25z-running-embedded-web-server-with-w5100.png"&gt;&lt;img loading="lazy" alt="image" class="jiveImage" height="476" src="http://mcuoneclipse.files.wordpress.com/2014/01/frdm-kl25z-running-embedded-web-server-with-w5100.png" style="height:476.32575757575756px;width:503px;" width="503"  /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding-left:270px;"&gt;FRDM-KL25Z running Embedded Web Server with W5100&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;To make a web server, I need 3 things to do:&lt;/span&gt;&lt;/p&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;Initialize the W5100&lt;/li&gt;&lt;li&gt;Using Sockets&lt;/li&gt;&lt;li&gt;Host an HTML web server&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;There are many good tutorials around this subject available. I recommend “&lt;a class="jive-link-external-small" href="http://www.ermicro.com/blog/?p=1773" rel="nofollow ugc noopener" style="font-family:inherit;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank" title="Integrating Wiznet W5100, WIZ811MJ network module with Atmel AVR Microcontroller"&gt;Integrating Wiznet W5100, WIZ811MJ network module with Atmel AVR Microcontroller&lt;/a&gt;” as this article describes very nicely the features of the device and how the socket interface works. The example used in that article implements only one socket, while I have extended it to support up to four sockets of the device with the help of this article: “&lt;a class="jive-link-external-small" href="http://www.seanet.com/~karllunt/w5100_library.html" rel="nofollow ugc noopener" style="font-family:inherit;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;Wiznet 5100 library for ATmega devices&lt;/a&gt;“.&lt;/span&gt;&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;&lt;/h1&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Initialization&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;First, the W5100 needs to be initialized:&lt;/span&gt;&lt;/p&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;Reset the device&lt;/li&gt;&lt;li&gt;Configure the network address and gateway&lt;/li&gt;&lt;li&gt;Set up the total 8 KByte send and receive buffers for the 4 sockets&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://s0.wp.com/wp-includes/images/smilies/icon_idea.gif?m=1129645325g"&gt;&lt;img loading="lazy" alt=":idea:" class="jiveImage wp-smiley" src="http://s0.wp.com/wp-includes/images/smilies/icon_idea.gif?m=1129645325g" style="border-style:none;color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;" /&gt;&lt;/a&gt;&lt;span style="color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;"&gt; All the source files are available on &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/FRDM-KL25Z/FRDM-KL25Z_Eth" rel="nofollow ugc noopener" style="font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;color:#1982d1;" target="_blank"&gt;GitHub&lt;/a&gt;&lt;span style="color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="number1 alt2 line index0"&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;24&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;25&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;26&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;27&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;28&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;29&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;30&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;31&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;32&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;33&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;&amp;nbsp; static&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;WiznetSetup(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Reset W5100.\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* reset device */&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(W5100_MemWriteByte(W5100_MR, W5100_MR_BIT_RST)!=ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Failed to reset device!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Configure network.\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* configure network: IP address, gateway, netmask, MAC */&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(W5100_WriteConfig((w5100_config_t*)&amp;amp;W5100_config)!=ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Failed to set Net Configuration!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Configure RX/TX memory.\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* we have 8 KByte we can use for the RX and TX sockets: */&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(W5100_MemWriteByte(W5100_RMSR,&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_xMSR_SOCKET_1_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;|W5100_xMSR_SOCKET_2_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;|W5100_xMSR_SOCKET_3_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;|W5100_xMSR_SOCKET_4_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;)!=ERR_OK)&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Failed to set RX socket memory size!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(W5100_MemWriteByte(W5100_TMSR,&lt;/code&gt;&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_xMSR_SOCKET_1_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;|W5100_xMSR_SOCKET_2_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;|W5100_xMSR_SOCKET_3_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;|W5100_xMSR_SOCKET_4_MEM_SIZE_2KB&lt;/code&gt;&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;)!=ERR_OK)&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Failed to set TX socket memory size!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;done!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;&lt;/h1&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Sockets&lt;/h1&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The W5100 supports up to 4 sockets. For this I have ‘sockets.h’ and ‘sockets.c’.&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="syntaxhighlighter cpp" style="font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;24&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;25&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;26&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;27&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;28&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;29&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;30&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;31&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;32&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;33&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;34&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;35&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;36&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;37&lt;/p&gt;&lt;p class="number38 index37 alt1 line" style="margin:0;"&gt;38&lt;/p&gt;&lt;p class="number39 index38 alt2 line" style="margin:0;"&gt;39&lt;/p&gt;&lt;p class="number40 index39 alt1 line" style="margin:0;"&gt;40&lt;/p&gt;&lt;p class="number41 index40 alt2 line" style="margin:0;"&gt;41&lt;/p&gt;&lt;p class="number42 index41 alt1 line" style="margin:0;"&gt;42&lt;/p&gt;&lt;p class="index42 alt2 line number43" style="margin:0;"&gt;43&lt;/p&gt;&lt;p class="index43 alt1 line number44" style="margin:0;"&gt;44&lt;/p&gt;&lt;p class="alt2 number45 index44 line" style="margin:0;"&gt;45&lt;/p&gt;&lt;p class="number46 alt1 line index45" style="margin:0;"&gt;46&lt;/p&gt;&lt;p class="index46 number47 alt2 line" style="margin:0;"&gt;47&lt;/p&gt;&lt;p class="index47 number48 alt1 line" style="margin:0;"&gt;48&lt;/p&gt;&lt;p class="number49 index48 alt2 line" style="margin:0;"&gt;49&lt;/p&gt;&lt;p class="number50 index49 alt1 line" style="margin:0;"&gt;50&lt;/p&gt;&lt;p class="index50 number51 alt2 line" style="margin:0;"&gt;51&lt;/p&gt;&lt;p class="number52 index51 alt1 line" style="margin:0;"&gt;52&lt;/p&gt;&lt;p class="number53 index52 alt2 line" style="margin:0;"&gt;53&lt;/p&gt;&lt;p class="index53 alt1 line number54" style="margin:0;"&gt;54&lt;/p&gt;&lt;p class="alt2 index54 line number55" style="margin:0;"&gt;55&lt;/p&gt;&lt;p class="alt1 number56 index55 line" style="margin:0;"&gt;56&lt;/p&gt;&lt;p class="alt2 number57 line index56" style="margin:0;"&gt;57&lt;/p&gt;&lt;p class="index57 number58 alt1 line" style="margin:0;"&gt;58&lt;/p&gt;&lt;p class="index58 number59 alt2 line" style="margin:0;"&gt;59&lt;/p&gt;&lt;p class="index59 number60 alt1 line" style="margin:0;"&gt;60&lt;/p&gt;&lt;p class="index60 number61 alt2 line" style="margin:0;"&gt;61&lt;/p&gt;&lt;p class="index61 number62 alt1 line" style="margin:0;"&gt;62&lt;/p&gt;&lt;p class="number63 index62 alt2 line" style="margin:0;"&gt;63&lt;/p&gt;&lt;p class="number64 index63 alt1 line" style="margin:0;"&gt;64&lt;/p&gt;&lt;p class="alt2 index64 line number65" style="margin:0;"&gt;65&lt;/p&gt;&lt;p class="alt1 index65 line number66" style="margin:0;"&gt;66&lt;/p&gt;&lt;p class="alt2 number67 line index66" style="margin:0;"&gt;67&lt;/p&gt;&lt;p class="number68 alt1 line index67" style="margin:0;"&gt;68&lt;/p&gt;&lt;p class="index68 number69 alt2 line" style="margin:0;"&gt;69&lt;/p&gt;&lt;p class="index69 number70 alt1 line" style="margin:0;"&gt;70&lt;/p&gt;&lt;p class="number71 alt2 line index70" style="margin:0;"&gt;71&lt;/p&gt;&lt;p class="index71 number72 alt1 line" style="margin:0;"&gt;72&lt;/p&gt;&lt;p class="index72 number73 alt2 line" style="margin:0;"&gt;73&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;&amp;nbsp; /*!&lt;/code&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&lt;/code&gt;&lt;code class="cpp comments"&gt;&amp;nbsp; * \brief Opens a socket&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param eth_protocol Ethernet protocol for the socket (TCP, UPD, PPPOE, ...)&lt;/code&gt;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param tcp_port TCP port to be used (typically 80 for HTTP)&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_OpenSocket(uint8_t sock, uint8_t eth_protocol, uint16_t tcp_port);&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Starts listening on the socket.&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS.&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Listen(uint8_t sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Returns the socket status&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS.&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param status Pointer to where to store the status.&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_GetStatus(uint8_t sock, uint8_t *status);&lt;/code&gt;&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Returns the received data size in the socket.&lt;/code&gt;&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS.&lt;/code&gt;&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param rxSize Pointer to where to store the amount bytes in socket.&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_ReceivedSize(uint8_t sock, uint16_t *rxSize);&lt;/code&gt;&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Receive data from a socket&lt;/code&gt;&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS&lt;/code&gt;&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param buf Pointer to buffer with data&lt;/code&gt;&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param bufSize Size of buf in bytes&lt;/code&gt;&lt;/p&gt;&lt;p class="number38 index37 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param readLen Size of data to read in bytes&lt;/code&gt;&lt;/p&gt;&lt;p class="number39 index38 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="number40 index39 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="number41 index40 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Receive(uint8_t sock, uint8_t *buf, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;bufSize, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;readLen);&lt;/code&gt;&lt;/p&gt;&lt;p class="number42 index41 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index42 alt2 line number43" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="index43 alt1 line number44" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Send data to a socket&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number45 index44 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS&lt;/code&gt;&lt;/p&gt;&lt;p class="number46 alt1 line index45" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param buf Pointer to buffer with data&lt;/code&gt;&lt;/p&gt;&lt;p class="index46 number47 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param bufLen Size of data in bytes&lt;/code&gt;&lt;/p&gt;&lt;p class="index47 number48 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="number49 index48 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="number50 index49 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Send(uint8_t sock, &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;const&lt;/code&gt; &lt;code class="cpp plain"&gt;uint8_t *buf, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;buflen);&lt;/code&gt;&lt;/p&gt;&lt;p class="index50 number51 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number52 index51 alt1 line" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="number53 index52 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Disconnects a socket&lt;/code&gt;&lt;/p&gt;&lt;p class="index53 alt1 line number54" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index54 line number55" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \return Error code, ERR_OK for success&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number56 index55 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number57 line index56" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Disconnect(uint8_t sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="index57 number58 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index58 number59 alt2 line" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="index59 number60 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Close a socket&lt;/code&gt;&lt;/p&gt;&lt;p class="index60 number61 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \param sock Socket number, 0..W5100_NUM_SOCKETS&lt;/code&gt;&lt;/p&gt;&lt;p class="index61 number62 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="number63 index62 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_CloseSocket(uint8_t sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number64 index63 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index64 line number65" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index65 line number66" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Driver initialization.&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number67 line index66" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="number68 alt1 line index67" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;SOCK_Init(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;);&lt;/code&gt;&lt;/p&gt;&lt;p class="index68 number69 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index69 number70 alt1 line" style="margin:0;"&gt;&lt;code class="cpp comments"&gt;/*!&lt;/code&gt;&lt;/p&gt;&lt;p class="number71 alt2 line index70" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;* \brief Driver de-initialization.&lt;/code&gt;&lt;/p&gt;&lt;p class="index71 number72 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt; &lt;/code&gt;&lt;code class="cpp comments"&gt;*/&lt;/code&gt;&lt;/p&gt;&lt;p class="index72 number73 alt2 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;SOCK_Deinit(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;);&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The implementation uses the W5100 low-level driver I presented in &lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16852/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-2-ping" target="_blank"&gt;Part 2&lt;/a&gt;:&lt;/p&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;24&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;25&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;26&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;27&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;28&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;29&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;30&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;31&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;32&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;33&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;34&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;35&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;36&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;37&lt;/p&gt;&lt;p class="number38 index37 alt1 line" style="margin:0;"&gt;38&lt;/p&gt;&lt;p class="number39 index38 alt2 line" style="margin:0;"&gt;39&lt;/p&gt;&lt;p class="number40 index39 alt1 line" style="margin:0;"&gt;40&lt;/p&gt;&lt;p class="number41 index40 alt2 line" style="margin:0;"&gt;41&lt;/p&gt;&lt;p class="number42 index41 alt1 line" style="margin:0;"&gt;42&lt;/p&gt;&lt;p class="index42 alt2 line number43" style="margin:0;"&gt;43&lt;/p&gt;&lt;p class="index43 alt1 line number44" style="margin:0;"&gt;44&lt;/p&gt;&lt;p class="alt2 number45 index44 line" style="margin:0;"&gt;45&lt;/p&gt;&lt;p class="number46 alt1 line index45" style="margin:0;"&gt;46&lt;/p&gt;&lt;p class="index46 number47 alt2 line" style="margin:0;"&gt;47&lt;/p&gt;&lt;p class="index47 number48 alt1 line" style="margin:0;"&gt;48&lt;/p&gt;&lt;p class="number49 index48 alt2 line" style="margin:0;"&gt;49&lt;/p&gt;&lt;p class="number50 index49 alt1 line" style="margin:0;"&gt;50&lt;/p&gt;&lt;p class="index50 number51 alt2 line" style="margin:0;"&gt;51&lt;/p&gt;&lt;p class="number52 index51 alt1 line" style="margin:0;"&gt;52&lt;/p&gt;&lt;p class="number53 index52 alt2 line" style="margin:0;"&gt;53&lt;/p&gt;&lt;p class="index53 alt1 line number54" style="margin:0;"&gt;54&lt;/p&gt;&lt;p class="alt2 index54 line number55" style="margin:0;"&gt;55&lt;/p&gt;&lt;p class="alt1 number56 index55 line" style="margin:0;"&gt;56&lt;/p&gt;&lt;p class="alt2 number57 line index56" style="margin:0;"&gt;57&lt;/p&gt;&lt;p class="index57 number58 alt1 line" style="margin:0;"&gt;58&lt;/p&gt;&lt;p class="index58 number59 alt2 line" style="margin:0;"&gt;59&lt;/p&gt;&lt;p class="index59 number60 alt1 line" style="margin:0;"&gt;60&lt;/p&gt;&lt;p class="index60 number61 alt2 line" style="margin:0;"&gt;61&lt;/p&gt;&lt;p class="index61 number62 alt1 line" style="margin:0;"&gt;62&lt;/p&gt;&lt;p class="number63 index62 alt2 line" style="margin:0;"&gt;63&lt;/p&gt;&lt;p class="number64 index63 alt1 line" style="margin:0;"&gt;64&lt;/p&gt;&lt;p class="alt2 index64 line number65" style="margin:0;"&gt;65&lt;/p&gt;&lt;p class="alt1 index65 line number66" style="margin:0;"&gt;66&lt;/p&gt;&lt;p class="alt2 number67 line index66" style="margin:0;"&gt;67&lt;/p&gt;&lt;p class="number68 alt1 line index67" style="margin:0;"&gt;68&lt;/p&gt;&lt;p class="index68 number69 alt2 line" style="margin:0;"&gt;69&lt;/p&gt;&lt;p class="index69 number70 alt1 line" style="margin:0;"&gt;70&lt;/p&gt;&lt;p class="number71 alt2 line index70" style="margin:0;"&gt;71&lt;/p&gt;&lt;p class="index71 number72 alt1 line" style="margin:0;"&gt;72&lt;/p&gt;&lt;p class="index72 number73 alt2 line" style="margin:0;"&gt;73&lt;/p&gt;&lt;p class="number74 index73 alt1 line" style="margin:0;"&gt;74&lt;/p&gt;&lt;p class="number75 index74 alt2 line" style="margin:0;"&gt;75&lt;/p&gt;&lt;p class="index75 alt1 line number76" style="margin:0;"&gt;76&lt;/p&gt;&lt;p class="alt2 index76 line number77" style="margin:0;"&gt;77&lt;/p&gt;&lt;p class="alt1 number78 line index77" style="margin:0;"&gt;78&lt;/p&gt;&lt;p class="alt2 number79 line index78" style="margin:0;"&gt;79&lt;/p&gt;&lt;p class="index79 alt1 number80 line" style="margin:0;"&gt;80&lt;/p&gt;&lt;p class="alt2 number81 index80 line" style="margin:0;"&gt;81&lt;/p&gt;&lt;p class="number82 alt1 line index81" style="margin:0;"&gt;82&lt;/p&gt;&lt;p class="index82 number83 alt2 line" style="margin:0;"&gt;83&lt;/p&gt;&lt;p class="index83 number84 alt1 line" style="margin:0;"&gt;84&lt;/p&gt;&lt;p class="number85 index84 alt2 line" style="margin:0;"&gt;85&lt;/p&gt;&lt;p class="number86 index85 alt1 line" style="margin:0;"&gt;86&lt;/p&gt;&lt;p class="alt2 index86 line number87" style="margin:0;"&gt;87&lt;/p&gt;&lt;p class="alt1 index87 line number88" style="margin:0;"&gt;88&lt;/p&gt;&lt;p class="alt2 number89 line index88" style="margin:0;"&gt;89&lt;/p&gt;&lt;p class="alt1 line number90 index89" style="margin:0;"&gt;90&lt;/p&gt;&lt;p class="alt2 index90 number91 line" style="margin:0;"&gt;91&lt;/p&gt;&lt;p class="number92 alt1 index91 line" style="margin:0;"&gt;92&lt;/p&gt;&lt;p class="number93 alt2 line index92" style="margin:0;"&gt;93&lt;/p&gt;&lt;p class="index93 number94 alt1 line" style="margin:0;"&gt;94&lt;/p&gt;&lt;p class="index94 number95 alt2 line" style="margin:0;"&gt;95&lt;/p&gt;&lt;p class="number96 index95 alt1 line" style="margin:0;"&gt;96&lt;/p&gt;&lt;p class="number97 index96 alt2 line" style="margin:0;"&gt;97&lt;/p&gt;&lt;p class="index97 alt1 line number98" style="margin:0;"&gt;98&lt;/p&gt;&lt;p class="alt2 index98 number99 line" style="margin:0;"&gt;99&lt;/p&gt;&lt;p class="alt1 line index99 number100" style="margin:0;"&gt;100&lt;/p&gt;&lt;p class="index100 alt2 number101 line" style="margin:0;"&gt;101&lt;/p&gt;&lt;p class="index101 alt1 number102 line" style="margin:0;"&gt;102&lt;/p&gt;&lt;p class="alt2 number103 index102 line" style="margin:0;"&gt;103&lt;/p&gt;&lt;p class="number104 alt1 index103 line" style="margin:0;"&gt;104&lt;/p&gt;&lt;p class="number105 alt2 line index104" style="margin:0;"&gt;105&lt;/p&gt;&lt;p class="index105 number106 alt1 line" style="margin:0;"&gt;106&lt;/p&gt;&lt;p class="number107 index106 alt2 line" style="margin:0;"&gt;107&lt;/p&gt;&lt;p class="index107 alt1 line number108" style="margin:0;"&gt;108&lt;/p&gt;&lt;p class="index108 alt2 number109 line" style="margin:0;"&gt;109&lt;/p&gt;&lt;p class="number110 index109 alt1 line" style="margin:0;"&gt;110&lt;/p&gt;&lt;p class="index110 alt2 line number111" style="margin:0;"&gt;111&lt;/p&gt;&lt;p class="index111 alt1 line number112" style="margin:0;"&gt;112&lt;/p&gt;&lt;p class="alt2 index112 number113 line" style="margin:0;"&gt;113&lt;/p&gt;&lt;p class="number114 alt1 index113 line" style="margin:0;"&gt;114&lt;/p&gt;&lt;p class="number115 alt2 index114 line" style="margin:0;"&gt;115&lt;/p&gt;&lt;p class="number116 alt1 line index115" style="margin:0;"&gt;116&lt;/p&gt;&lt;p class="index116 number117 alt2 line" style="margin:0;"&gt;117&lt;/p&gt;&lt;p class="number118 index117 alt1 line" style="margin:0;"&gt;118&lt;/p&gt;&lt;p class="index118 alt2 line number119" style="margin:0;"&gt;119&lt;/p&gt;&lt;p class="number120 index119 alt1 line" style="margin:0;"&gt;120&lt;/p&gt;&lt;p class="number121 index120 alt2 line" style="margin:0;"&gt;121&lt;/p&gt;&lt;p class="index121 alt1 line number122" style="margin:0;"&gt;122&lt;/p&gt;&lt;p class="index122 alt2 line number123" style="margin:0;"&gt;123&lt;/p&gt;&lt;p class="index123 alt1 number124 line" style="margin:0;"&gt;124&lt;/p&gt;&lt;p class="alt2 number125 index124 line" style="margin:0;"&gt;125&lt;/p&gt;&lt;p class="number126 alt1 index125 line" style="margin:0;"&gt;126&lt;/p&gt;&lt;p class="number127 alt2 line index126" style="margin:0;"&gt;127&lt;/p&gt;&lt;p class="index127 number128 alt1 line" style="margin:0;"&gt;128&lt;/p&gt;&lt;p class="number129 index128 alt2 line" style="margin:0;"&gt;129&lt;/p&gt;&lt;p class="number130 index129 alt1 line" style="margin:0;"&gt;130&lt;/p&gt;&lt;p class="index130 number131 alt2 line" style="margin:0;"&gt;131&lt;/p&gt;&lt;p class="number132 index131 alt1 line" style="margin:0;"&gt;132&lt;/p&gt;&lt;p class="index132 alt2 line number133" style="margin:0;"&gt;133&lt;/p&gt;&lt;p class="index133 alt1 line number134" style="margin:0;"&gt;134&lt;/p&gt;&lt;p class="index134 alt2 number135 line" style="margin:0;"&gt;135&lt;/p&gt;&lt;p class="number136 index135 alt1 line" style="margin:0;"&gt;136&lt;/p&gt;&lt;p class="number137 alt2 index136 line" style="margin:0;"&gt;137&lt;/p&gt;&lt;p class="number138 alt1 line index137" style="margin:0;"&gt;138&lt;/p&gt;&lt;p class="index138 number139 alt2 line" style="margin:0;"&gt;139&lt;/p&gt;&lt;p class="index139 number140 alt1 line" style="margin:0;"&gt;140&lt;/p&gt;&lt;p class="number141 alt2 line index140" style="margin:0;"&gt;141&lt;/p&gt;&lt;p class="index141 number142 alt1 line" style="margin:0;"&gt;142&lt;/p&gt;&lt;p class="number143 index142 alt2 line" style="margin:0;"&gt;143&lt;/p&gt;&lt;p class="index143 alt1 line number144" style="margin:0;"&gt;144&lt;/p&gt;&lt;p class="index144 alt2 number145 line" style="margin:0;"&gt;145&lt;/p&gt;&lt;p class="index145 number146 alt1 line" style="margin:0;"&gt;146&lt;/p&gt;&lt;p class="number147 alt2 index146 line" style="margin:0;"&gt;147&lt;/p&gt;&lt;p class="number148 alt1 index147 line" style="margin:0;"&gt;148&lt;/p&gt;&lt;p class="number149 alt2 line index148" style="margin:0;"&gt;149&lt;/p&gt;&lt;p class="index149 number150 alt1 line" style="margin:0;"&gt;150&lt;/p&gt;&lt;p class="number151 alt2 line index150" style="margin:0;"&gt;151&lt;/p&gt;&lt;p class="number152 alt1 line index151" style="margin:0;"&gt;152&lt;/p&gt;&lt;p class="index152 number153 alt2 line" style="margin:0;"&gt;153&lt;/p&gt;&lt;p class="number154 index153 alt1 line" style="margin:0;"&gt;154&lt;/p&gt;&lt;p class="index154 alt2 line number155" style="margin:0;"&gt;155&lt;/p&gt;&lt;p class="index155 alt1 number156 line" style="margin:0;"&gt;156&lt;/p&gt;&lt;p class="alt2 index156 number157 line" style="margin:0;"&gt;157&lt;/p&gt;&lt;p class="number158 alt1 index157 line" style="margin:0;"&gt;158&lt;/p&gt;&lt;p class="number159 alt2 line index158" style="margin:0;"&gt;159&lt;/p&gt;&lt;p class="alt1 number160 line index159" style="margin:0;"&gt;160&lt;/p&gt;&lt;p class="alt2 number161 index160 line" style="margin:0;"&gt;161&lt;/p&gt;&lt;p class="number162 alt1 index161 line" style="margin:0;"&gt;162&lt;/p&gt;&lt;p class="number163 alt2 line index162" style="margin:0;"&gt;163&lt;/p&gt;&lt;p class="index163 number164 alt1 line" style="margin:0;"&gt;164&lt;/p&gt;&lt;p class="number165 index164 alt2 line" style="margin:0;"&gt;165&lt;/p&gt;&lt;p class="index165 alt1 line number166" style="margin:0;"&gt;166&lt;/p&gt;&lt;p class="index166 alt2 number167 line" style="margin:0;"&gt;167&lt;/p&gt;&lt;p class="index167 alt1 number168 line" style="margin:0;"&gt;168&lt;/p&gt;&lt;p class="alt2 number169 index168 line" style="margin:0;"&gt;169&lt;/p&gt;&lt;p class="alt1 line index169 number170" style="margin:0;"&gt;170&lt;/p&gt;&lt;p class="index170 alt2 number171 line" style="margin:0;"&gt;171&lt;/p&gt;&lt;p class="number172 index171 alt1 line" style="margin:0;"&gt;172&lt;/p&gt;&lt;p class="number173 alt2 index172 line" style="margin:0;"&gt;173&lt;/p&gt;&lt;p class="number174 alt1 line index173" style="margin:0;"&gt;174&lt;/p&gt;&lt;p class="index174 number175 alt2 line" style="margin:0;"&gt;175&lt;/p&gt;&lt;p class="number176 index175 alt1 line" style="margin:0;"&gt;176&lt;/p&gt;&lt;p class="index176 alt2 line number177" style="margin:0;"&gt;177&lt;/p&gt;&lt;p class="index177 alt1 number178 line" style="margin:0;"&gt;178&lt;/p&gt;&lt;p class="alt2 index178 number179 line" style="margin:0;"&gt;179&lt;/p&gt;&lt;p class="alt1 index179 line number180" style="margin:0;"&gt;180&lt;/p&gt;&lt;p class="index180 alt2 number181 line" style="margin:0;"&gt;181&lt;/p&gt;&lt;p class="index181 number182 alt1 line" style="margin:0;"&gt;182&lt;/p&gt;&lt;p class="number183 alt2 index182 line" style="margin:0;"&gt;183&lt;/p&gt;&lt;p class="number184 alt1 index183 line" style="margin:0;"&gt;184&lt;/p&gt;&lt;p class="number185 alt2 line index184" style="margin:0;"&gt;185&lt;/p&gt;&lt;p class="index185 number186 alt1 line" style="margin:0;"&gt;186&lt;/p&gt;&lt;p class="number187 index186 alt2 line" style="margin:0;"&gt;187&lt;/p&gt;&lt;p class="index187 alt1 line number188" style="margin:0;"&gt;188&lt;/p&gt;&lt;p class="index188 alt2 line number189" style="margin:0;"&gt;189&lt;/p&gt;&lt;p class="number190 index189 alt1 line" style="margin:0;"&gt;190&lt;/p&gt;&lt;p class="index190 alt2 line number191" style="margin:0;"&gt;191&lt;/p&gt;&lt;p class="index191 alt1 number192 line" style="margin:0;"&gt;192&lt;/p&gt;&lt;p class="index192 alt2 number193 line" style="margin:0;"&gt;193&lt;/p&gt;&lt;p class="number194 index193 alt1 line" style="margin:0;"&gt;194&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;"&gt;&lt;code class="cpp preprocessor"&gt;&amp;nbsp; #include &amp;quot;socket.h&amp;quot;&lt;/code&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;code class="cpp preprocessor"&gt;&amp;nbsp; #include &amp;quot;w5100.h&amp;quot;&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="cpp preprocessor"&gt;#include &amp;quot;WAIT1.h&amp;quot;&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_CloseSocket(uint8_t sock) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint8_t val;&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(sock&amp;gt;=W5100_NUM_SOCKETS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Send Close Command */&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_CR_OFFSET, W5100_CR_CLOSE);&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;do&lt;/code&gt; &lt;code class="cpp plain"&gt;{ &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Waiting until the S0_CR is clear */&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_CR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt;&lt;code class="cpp plain"&gt;(val!=0);&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Disconnect(uint8_t sock) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint8_t val;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(sock&amp;gt;=W5100_NUM_SOCKETS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Send Disconnect Command */&lt;/code&gt;&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_CR_OFFSET, W5100_CR_DISCON);&lt;/code&gt;&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;do&lt;/code&gt; &lt;code class="cpp plain"&gt;{ &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait for Disconnecting Process */&lt;/code&gt;&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_CR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt;&lt;code class="cpp plain"&gt;(val!=0);&lt;/code&gt;&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_OpenSocket(uint8_t sock, uint8_t eth_protocol, uint16_t tcp_port) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number38 index37 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint8_t val;&lt;/code&gt;&lt;/p&gt;&lt;p class="number39 index38 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="number40 index39 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number41 index40 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(sock&amp;gt;=W5100_NUM_SOCKETS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number42 index41 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* out of range */&lt;/code&gt;&lt;/p&gt;&lt;p class="index42 alt2 line number43" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index43 alt1 line number44" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr =&amp;nbsp; W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number45 index44 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Make sure we close the socket first */&lt;/code&gt;&lt;/p&gt;&lt;p class="number46 alt1 line index45" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(W5100_MemReadByte(sockaddr+W5100_SR_OFFSET, &amp;amp;val)!=ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index46 number47 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* failure */&lt;/code&gt;&lt;/p&gt;&lt;p class="index47 number48 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number49 index48 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(val==W5100_SOCK_CLOSED) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number50 index49 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* make sure we close the socket */&lt;/code&gt;&lt;/p&gt;&lt;p class="index50 number51 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SOCK_CloseSocket(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number52 index51 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number53 index52 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Assigned Socket 0 Mode Register */&lt;/code&gt;&lt;/p&gt;&lt;p class="index53 alt1 line number54" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_MR_OFFSET, eth_protocol);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index54 line number55" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Now open the Socket 0 */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number56 index55 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteWord(sockaddr+W5100_PORT_OFFSET, tcp_port);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number57 line index56" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_CR_OFFSET, W5100_CR_OPEN);&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Open Socket */&lt;/code&gt;&lt;/p&gt;&lt;p class="index57 number58 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait for Opening Process */&lt;/code&gt;&lt;/p&gt;&lt;p class="index58 number59 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;do&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="index59 number60 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_CR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="index60 number61 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt;&lt;code class="cpp plain"&gt;(val!=0);&lt;/code&gt;&lt;/p&gt;&lt;p class="index61 number62 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Check for Init Status */&lt;/code&gt;&lt;/p&gt;&lt;p class="number63 index62 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_SR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="number64 index63 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(val==W5100_SOCK_INIT) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index64 line number65" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index65 line number66" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number67 line index66" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SOCK_CloseSocket(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number68 alt1 line index67" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index68 number69 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="index69 number70 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number71 alt2 line index70" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index71 number72 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Listen(uint8_t sock) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index72 number73 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint8_t val;&lt;/code&gt;&lt;/p&gt;&lt;p class="number74 index73 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="number75 index74 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index75 alt1 line number76" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(sock&amp;gt;=W5100_NUM_SOCKETS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index76 line number77" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number78 line index77" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number79 line index78" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="index79 alt1 number80 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_SR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number81 index80 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(val==W5100_SOCK_INIT) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number82 alt1 line index81" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Send the LISTEN Command */&lt;/code&gt;&lt;/p&gt;&lt;p class="index82 number83 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_CR_OFFSET, W5100_CR_LISTEN);&lt;/code&gt;&lt;/p&gt;&lt;p class="index83 number84 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait for Listening Process */&lt;/code&gt;&lt;/p&gt;&lt;p class="number85 index84 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;do&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="number86 index85 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_CR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index86 line number87" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt;&lt;code class="cpp plain"&gt;(val!=0);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index87 line number88" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Check for Listen Status */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number89 line index88" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_SR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line number90 index89" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(val==W5100_SOCK_LISTEN) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index90 number91 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="number92 alt1 index91 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="number93 alt2 line index92" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SOCK_CloseSocket(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="index93 number94 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index94 number95 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number96 index95 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="number97 index96 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index97 alt1 line number98" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index98 number99 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Send(uint8_t sock, &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;const&lt;/code&gt; &lt;code class="cpp plain"&gt;uint8_t *buf, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;buflen) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index99 number100" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t offaddr, realaddr, txsize, timeout, sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="index100 alt2 number101 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint8_t val;&lt;/code&gt;&lt;/p&gt;&lt;p class="index101 alt1 number102 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 number103 index102 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(buflen&amp;lt;=0 || sock&amp;gt;=W5100_NUM_SOCKETS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number104 alt1 index103 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number105 alt2 line index104" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index105 number106 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number107 index106 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Make sure the TX Free Size Register is available */&lt;/code&gt;&lt;/p&gt;&lt;p class="index107 alt1 line number108" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadWord(sockaddr+W5100_TX_FSR_OFFSET, &amp;amp;txsize);&lt;/code&gt;&lt;/p&gt;&lt;p class="index108 alt2 number109 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;timeout=0;&lt;/code&gt;&lt;/p&gt;&lt;p class="number110 index109 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt; &lt;code class="cpp plain"&gt;(txsize&amp;lt;buflen) {=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;quot;&lt;/code&gt; &lt;code class="cpp plain"&gt;wait1_waitosms(1);=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;quot;&lt;/code&gt; &lt;code class="cpp plain"&gt;w5100_memreadword(sockaddr+w5100_tx_fsr_offset,=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;quot;&lt;/code&gt; &lt;code class="cpp plain"&gt;&amp;amp;&amp;lt;span=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;quot;&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;class&lt;/code&gt;&lt;code class="cpp plain"&gt;=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;hiddenSpellError&amp;quot;&lt;/code&gt; &lt;code class="cpp plain"&gt;pre=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;&amp;gt;txsize);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Timeout for approximately 1000 ms */&lt;/code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(timeout++ &amp;gt; 1000) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index110 alt2 line number111" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Disconnect the connection */&lt;/code&gt;&lt;/p&gt;&lt;p class="index111 alt1 line number112" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SOCK_Disconnect(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index112 number113 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="number114 alt1 index113 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number115 alt2 index114 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number116 alt1 line index115" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Read the Tx Write Pointer */&lt;/code&gt;&lt;/p&gt;&lt;p class="index116 number117 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadWord(sockaddr+W5100_TX_WR_OFFSET, &amp;amp;offaddr);&lt;/code&gt;&lt;/p&gt;&lt;p class="number118 index117 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt;&lt;code class="cpp plain"&gt;(buflen) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index118 alt2 line number119" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;buflen--;&lt;/code&gt;&lt;/p&gt;&lt;p class="number120 index119 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Calculate the real W5100 physical Tx Buffer Address */&lt;/code&gt;&lt;/p&gt;&lt;p class="number121 index120 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;realaddr = (W5100_TXBUFADDR+(0x0800*sock)) + (offaddr&amp;amp;W5100_TX_BUF_MASK);&lt;/code&gt;&lt;/p&gt;&lt;p class="index121 alt1 line number122" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Copy the application data to the W5100 Tx Buffer */&lt;/code&gt;&lt;/p&gt;&lt;p class="index122 alt2 line number123" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(realaddr, *buf);&lt;/code&gt;&lt;/p&gt;&lt;p class="index123 alt1 number124 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;offaddr++;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number125 index124 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;buf++;&lt;/code&gt;&lt;/p&gt;&lt;p class="number126 alt1 index125 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number127 alt2 line index126" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Increase the S0_TX_WR value, so it point to the next transmit */&lt;/code&gt;&lt;/p&gt;&lt;p class="index127 number128 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteWord(sockaddr+W5100_TX_WR_OFFSET, offaddr);&lt;/code&gt;&lt;/p&gt;&lt;p class="number129 index128 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Now Send the SEND command */&lt;/code&gt;&lt;/p&gt;&lt;p class="number130 index129 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_CR_OFFSET, W5100_CR_SEND);&lt;/code&gt;&lt;/p&gt;&lt;p class="index130 number131 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait for Sending Process */&lt;/code&gt;&lt;/p&gt;&lt;p class="number132 index131 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;do&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="index132 alt2 line number133" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_CR_OFFSET, &amp;amp;val);&lt;/code&gt;&lt;/p&gt;&lt;p class="index133 alt1 line number134" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt;&lt;code class="cpp plain"&gt;(val!=0);&lt;/code&gt;&lt;/p&gt;&lt;p class="index134 alt2 number135 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="number136 index135 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number137 alt2 index136 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number138 alt1 line index137" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_Receive(uint8_t sock, uint8_t *buf, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;bufSize, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;readSize) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index138 number139 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t offaddr, realaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="index139 number140 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="number141 alt2 line index140" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index141 number142 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(readSize&amp;lt;=0 || sock&amp;gt;=W5100_NUM_SOCKETS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number143 index142 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* failure */&lt;/code&gt;&lt;/p&gt;&lt;p class="index143 alt1 line number144" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index144 alt2 number145 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(readSize&amp;gt;bufSize) { &lt;/code&gt;&lt;code class="cpp comments"&gt;/* If the requested size &amp;gt; MAX_BUF, just truncate it */&lt;/code&gt;&lt;/p&gt;&lt;p class="index145 number146 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;readSize = bufSize-2;&lt;/code&gt;&lt;/p&gt;&lt;p class="number147 alt2 index146 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number148 alt1 index147 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number149 alt2 line index148" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Read the Rx Read Pointer */&lt;/code&gt;&lt;/p&gt;&lt;p class="index149 number150 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadWord(sockaddr+W5100_RX_RD_OFFSET, &amp;amp;offaddr);&lt;/code&gt;&lt;/p&gt;&lt;p class="number151 alt2 line index150" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;while&lt;/code&gt; &lt;code class="cpp plain"&gt;(readSize) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number152 alt1 line index151" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;readSize--;&lt;/code&gt;&lt;/p&gt;&lt;p class="index152 number153 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;realaddr = (W5100_RXBUFADDR + (0x0800*sock))+(offaddr&amp;amp;W5100_RX_BUF_MASK);&lt;/code&gt;&lt;/p&gt;&lt;p class="number154 index153 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemReadByte(realaddr, buf);&lt;/code&gt;&lt;/p&gt;&lt;p class="index154 alt2 line number155" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;offaddr++;&lt;/code&gt;&lt;/p&gt;&lt;p class="index155 alt1 number156 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;buf++;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index156 number157 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number158 alt1 index157 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;*buf=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;#39;\0&amp;#39;&lt;/code&gt;&lt;code class="cpp plain"&gt;;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* string terminated character */&lt;/code&gt;&lt;/p&gt;&lt;p class="number159 alt2 line index158" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Increase the S0_RX_RD value, so it point to the next receive */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number160 line index159" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteWord(sockaddr+W5100_RX_RD_OFFSET, offaddr);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number161 index160 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Now Send the RECV command */&lt;/code&gt;&lt;/p&gt;&lt;p class="number162 alt1 index161 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_MemWriteByte(sockaddr+W5100_CR_OFFSET, W5100_CR_RECV);&lt;/code&gt;&lt;/p&gt;&lt;p class="number163 alt2 line index162" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;WAIT1_Waitus(5);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Wait for Receive Process */&lt;/code&gt;&lt;/p&gt;&lt;p class="index163 number164 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="number165 index164 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index165 alt1 line number166" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index166 alt2 number167 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_ReceivedSize(uint8_t sock, uint16_t *rxSize) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index167 alt1 number168 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index169 number170" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;*rxSize = 0;&lt;/code&gt;&lt;/p&gt;&lt;p class="index170 alt2 number171 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(sock&amp;gt;=W5100_NUM_SOCKETS)&amp;nbsp; {&lt;/code&gt;&lt;/p&gt;&lt;p class="number172 index171 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number173 alt2 index172 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number174 alt1 line index173" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock); &lt;/code&gt;&lt;code class="cpp comments"&gt;// calc base addr for this socket&lt;/code&gt;&lt;/p&gt;&lt;p class="index174 number175 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_MemReadWord(sockaddr+W5100_RX_RSR_OFFSET, rxSize);&lt;/code&gt;&lt;/p&gt;&lt;p class="number176 index175 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index176 alt2 line number177" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index177 alt1 number178 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t SOCK_GetStatus(uint8_t sock, uint8_t *status) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index178 number179 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t sockaddr;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index179 line number180" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index180 alt2 number181 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(sock&amp;gt;=W5100_NUM_SOCKETS)&amp;nbsp; {&lt;/code&gt;&lt;/p&gt;&lt;p class="index181 number182 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_VALUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number183 alt2 index182 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number184 alt1 index183 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;sockaddr = W5100_SKT_BASE(sock);&lt;/code&gt;&lt;/p&gt;&lt;p class="number185 alt2 line index184" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_MemReadByte(sockaddr+W5100_SR_OFFSET, status);&lt;/code&gt;&lt;/p&gt;&lt;p class="index185 number186 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number187 index186 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index187 alt1 line number188" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;SOCK_Deinit(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;){&lt;/code&gt;&lt;/p&gt;&lt;p class="index188 alt2 line number189" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* nothing needed */&lt;/code&gt;&lt;/p&gt;&lt;p class="number190 index189 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index190 alt2 line number191" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index191 alt1 number192 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;SOCK_Init(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index192 alt2 number193 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* nothing needed */&lt;/code&gt;&lt;/p&gt;&lt;p class="number194 index193 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Web Server&lt;/h1&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The web server ‘task’ gets called from the application main loop:&lt;/p&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;It gets the status from the socket: If the socket is closed, it opens the socket with TCP protocol on the HTTP port (80), and then listens to the socket.&lt;/li&gt;&lt;li&gt;Once a communication connection is established, it checks how many bytes has been received and reads them into a buffer. If there is data, it inspects the data.&lt;/li&gt;&lt;/ol&gt;&lt;p class="syntaxhighlighter cpp" style="margin:0;padding:0px;font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;24&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;25&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;26&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;27&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;28&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;29&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;30&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;31&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;32&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;33&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;34&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;35&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;36&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;37&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;&amp;nbsp;&amp;nbsp; void&lt;/code&gt; &lt;code class="cpp plain"&gt;SERVER_Process(uint8_t socket) {&lt;/code&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint8_t status;&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;uint16_t rsize;&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(SOCK_GetStatus(socket, &amp;amp;status)!=ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt;&lt;code class="cpp plain"&gt;; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* failed */&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;switch&lt;/code&gt; &lt;code class="cpp plain"&gt;(status) {&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* based on current status of socket... */&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_CLOSED:&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* socket closed */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(SOCK_OpenSocket(socket, W5100_SKT_MR_TCP, SERVER_HTTP_PORT)==ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* successful opened the socket */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;)SOCK_Listen(socket);&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;break&lt;/code&gt;&lt;code class="cpp plain"&gt;;&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_ESTABLISHED:&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;)SOCK_ReceivedSize(socket, &amp;amp;rsize); &lt;/code&gt;&lt;code class="cpp comments"&gt;/* how many bytes received? */&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(rsize&amp;gt;0) { &lt;/code&gt;&lt;code class="cpp comments"&gt;/* received data */&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(SOCK_Receive(socket, buf, &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;sizeof&lt;/code&gt;&lt;code class="cpp plain"&gt;(buf), rsize)!=ERR_OK)&amp;nbsp; {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;break&lt;/code&gt;&lt;code class="cpp plain"&gt;; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* something failed, get out here */&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* check the content */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CheckData(socket, buf, &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;sizeof&lt;/code&gt;&lt;code class="cpp plain"&gt;(buf), rsize);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;break&lt;/code&gt;&lt;code class="cpp plain"&gt;;&lt;/code&gt;&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_INIT:&lt;/code&gt;&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;break&lt;/code&gt;&lt;code class="cpp plain"&gt;;&lt;/code&gt;&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_FIN_WAIT:&lt;/code&gt;&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_CLOSING:&lt;/code&gt;&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_TIME_WAIT:&lt;/code&gt;&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_CLOSE_WAIT:&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;case&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_SOCK_LAST_ACK:&lt;/code&gt;&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SOCK_CloseSocket(socket);&lt;/code&gt;&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;break&lt;/code&gt;&lt;code class="cpp plain"&gt;;&lt;/code&gt;&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="cpp comments"&gt;/* switch */&lt;/code&gt;&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Communication between Client and Server&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;To display a page from our web server in a client (a web browser, such as FireFox), the following happens:&lt;/p&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;Enter the address of the board in the browser (e.g. http://192.168.0.12)&lt;/li&gt;&lt;li&gt;The browser connects to the socket I have created with &lt;code style="font-family:Monaco, Consolas, &amp;#39;Andale Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, monospace;font-size:13px;"&gt;SOCK_OpenSocket()&lt;/code&gt; and which is listening to the incoming requests with SOCK_Listen(). By default it uses the standard TCP/IP port 80 (standard HTTP server port).&lt;/li&gt;&lt;li&gt;In the server, I get a &lt;code style="font-family:Monaco, Consolas, &amp;#39;Andale Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, monospace;font-size:13px;"&gt;W5100_SOCK_ESTABLISHED&lt;/code&gt; status.&lt;/li&gt;&lt;li&gt;The browser sends an HTTP “&lt;span style="font-family:inherit;font-style:inherit;"&gt;&lt;strong&gt;GET&lt;/strong&gt;&lt;/span&gt;“or “&lt;span style="font-family:inherit;font-style:inherit;"&gt;&lt;strong&gt;POST&lt;/strong&gt;&lt;/span&gt;” request to the server. With &lt;code style="font-family:Monaco, Consolas, &amp;#39;Andale Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, monospace;font-size:13px;"&gt;SOCK_ReceivedSize()&lt;/code&gt; the server knows the size of the request, and with&lt;code style="font-family:Monaco, Consolas, &amp;#39;Andale Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, monospace;font-size:13px;"&gt;SOCK_Receive()&lt;/code&gt; the server can get the data from the socket.&lt;/li&gt;&lt;/ol&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;GET Request&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;"&gt;The client is sending a &lt;/span&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;color:#373737;"&gt;&lt;strong&gt;GET&lt;/strong&gt;&lt;/span&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;"&gt; request to retrieve the HTML text to display.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/http-get.png"&gt;&lt;img loading="lazy" alt="image" class="jiveImage" height="192" src="http://mcuoneclipse.files.wordpress.com/2014/01/http-get.png" style="width:560px;height:192px;" width="560"  /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP GET Request&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;A GET is sent as well if I do a refresh in the web browser. The text of the GET request is what I get from the socket using &lt;code style="font-family:Monaco, Consolas, &amp;#39;Andale Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, monospace;font-size:13px;"&gt;SOCK_Receive()&lt;/code&gt;, and looks like this, with a “GET /” at the beginning:&lt;/p&gt;&lt;pre style="font-family:&amp;#39;Courier 10 Pitch&amp;#39;, Courier, monospace;margin:0 0 1.625em;padding:0.75em 1.625em;background-color:#f4f4f4;color:#373737;"&gt;GET / HTTP/1.1 Host: 192.168.0.80 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive&lt;/pre&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The web server responds to this with the HTML code. And this is done in my server implementation with this function SendPage().&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;a href="http://s0.wp.com/wp-includes/images/smilies/icon_exclaim.gif?m=1129645325g"&gt;&lt;img loading="lazy" alt=":!:" class="jiveImage wp-smiley" src="http://s0.wp.com/wp-includes/images/smilies/icon_exclaim.gif?m=1129645325g" style="border-style:none;color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;" /&gt;&lt;/a&gt;&lt;span style="color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;"&gt; Because that source code contains HTML code, WordPress was not able to properly show the source code here. Have look in the &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://github.com/ErichStyger/mcuoneclipse/blob/master/Examples/FRDM-KL25Z/FRDM-KL25Z_Eth/Sources/Server.c" rel="nofollow ugc noopener" style="font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;color:#1982d1;" target="_blank"&gt;Server.c on GitHub&lt;/a&gt;&lt;span style="color:#373737;font-family:Georgia, &amp;#39;Bitstream Charter&amp;#39;, serif;font-size:15px;font-style:italic;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;span style="color:#373737;font-style:italic;font-size:15px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;"&gt;This constructs the HTML code for my page, which then looks like this:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;span style="color:#373737;font-style:italic;font-size:15px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/web-server-with-w5100-and-frdm-kl25z.png?w=584&amp;amp;h=336"&gt;&lt;img loading="lazy" alt="Web Server with W5100 on FRDM-KL25Z" class="jiveImage" src="http://mcuoneclipse.files.wordpress.com/2014/01/web-server-with-w5100-and-frdm-kl25z.png?w=584&amp;amp;h=336" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&lt;span style="color:#373737;font-style:italic;font-size:15px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Web Server with W5100 on FRDM-KL25Z&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;At the end, it performs a disconnect of the socket so other clients can connect to that socket.&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;POST Request&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;A POST request is sent by the client for that ‘Submit Query’ button: it will send me the state of the radio buttons so I can turn the red LED on or off.&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/http-post.png?w=584&amp;amp;h=200"&gt;&lt;img loading="lazy" alt="HTTP Post" class="jiveImage" src="http://mcuoneclipse.files.wordpress.com/2014/01/http-post.png?w=584&amp;amp;h=200" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HTTP Post&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;Such a POST message looks like this:&lt;/p&gt;&lt;pre style="font-family:&amp;#39;Courier 10 Pitch&amp;#39;, Courier, monospace;margin:0 0 1.625em;padding:0.75em 1.625em;background-color:#f4f4f4;color:#373737;"&gt;&lt;span&gt;POST / HTTP/1.1 Host: 192.168.0.80 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: &lt;/span&gt;http://192.168.0.80/&lt;span&gt; Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 7&amp;nbsp; radio=0&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;Depending on which radio button is selected, there is “radio=0″ or “radio=1″ in the message. So for such a POST message, the web server needs to&lt;/p&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;Detect that it is a POST message (this is known by the “POST /” at the beginning)&lt;/li&gt;&lt;li&gt;Find the “radio=” in the message.&lt;/li&gt;&lt;/ol&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;strFind()&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;To find such substrings in the message, I have implemented a simple ‘search substring inside a string and return the position’. This function I have put into my utility component:&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;&amp;nbsp; int16_t UTIL1_strFind(byte *str, byte *subStr)&lt;/code&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;code class="cpp plain"&gt;&amp;nbsp; {&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;int&lt;/code&gt; &lt;code class="cpp plain"&gt;i, len;&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;len = UTIL1_strlen((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)subStr);&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;for&lt;/code&gt; &lt;code class="cpp plain"&gt;(i=0; *str!=&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;#39;\0&amp;#39;&lt;/code&gt;&lt;code class="cpp plain"&gt;; i++, str++) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strncmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)str, (&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)subStr, len)==0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;i; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* found */&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;-1; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* not found */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Checkin the HTML Data from the Client&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The last piece of the server is the function to find the “GET” and “POST” messages, and then to send the result back to the client:&lt;/p&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;&amp;nbsp; static&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;CheckData(uint8_t socket, uint8_t *buf, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;size_t&lt;/code&gt; &lt;code class="cpp plain"&gt;bufSize, uint16_t rsize) {&lt;/code&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;int&lt;/code&gt; &lt;code class="cpp plain"&gt;getidx, postidx;&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;&lt;code class="cpp preprocessor"&gt;#if 1 /* debug output */&lt;/code&gt;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((uint8_t*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;\r\n-------------------------\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr(buf, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((uint8_t*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;\r\n-------------------------\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="cpp preprocessor"&gt;#endif&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;getidx = UTIL1_strFind(buf, (unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;GET /&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;postidx = UTIL1_strFind(buf, (unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;POST /&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(getidx &amp;gt;= 0 || postidx &amp;gt;= 0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* check the Radio Button for POST request */&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(postidx&amp;gt;=0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strFind(buf, (unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;radio=0&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;)&amp;gt;0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;LED1_Off();&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strFind(buf, (unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;radio=1&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;)&amp;gt;0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;LED1_On();&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SendPage(socket, 23, LED1_Get());&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;For debugging purposes I print the received message to the console.&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Putting everything together&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;Oh, one thing is missing: how to call the server processing function. I do this in my application inside a FreeRTOS task, but that can be done easily without an RTOS too:&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="syntaxhighlighter cpp" style="font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;24&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;25&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;26&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;27&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;28&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;29&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;30&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;&lt;code class="keyword cpp bold"&gt;static&lt;/code&gt; &lt;code class="cpp plain"&gt;portTASK_FUNCTION(Task1, pvParameters) {&lt;/code&gt;&lt;p style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;)pvParameters; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* parameter not used */&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;WiznetSetup();&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Running web server...\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, CLS1_GetStdio()-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;for&lt;/code&gt;&lt;code class="cpp plain"&gt;(;;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SERVER_Process(0);&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;FRTOS1_vTaskDelay(50/portTICK_RATE_MS);&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;APP_Run(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;cardMounted = FALSE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SHELL_Init();&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_Init();&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SOCK_Init();&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;SERVER_Init();&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(FRTOS1_xTaskCreate(&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;Task1,&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* pointer to the task */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;signed&lt;/code&gt; &lt;code class="color1 cpp bold"&gt;char&lt;/code&gt; &lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Task1&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, &lt;/code&gt;&lt;code class="cpp comments"&gt;/* task name for kernel awareness debugging */&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;configMINIMAL_STACK_SIZE+100, &lt;/code&gt;&lt;code class="cpp comments"&gt;/* task stack size */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;*)NULL, &lt;/code&gt;&lt;code class="cpp comments"&gt;/* optional task startup argument */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;tskIDLE_PRIORITY,&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* initial priority */&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(xTaskHandle*)NULL &lt;/code&gt;&lt;code class="cpp comments"&gt;/* optional task handle to create */&lt;/code&gt;&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;) != pdPASS) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/*lint -e527 */&lt;/code&gt;&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;for&lt;/code&gt;&lt;code class="cpp plain"&gt;(;;){}; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* error! probably out of memory */&lt;/code&gt;&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp comments"&gt;/*lint +e527 */&lt;/code&gt;&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;FRTOS1_vTaskStartScheduler();&lt;/code&gt;&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;With this I have a functional web server on my FRDM-KL25Z board. I can use it to give status, but with the POST commands I can do actions (e.g. turning on or off an LED, etc).&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:0.8125em;color:#000000;"&gt;Summary&lt;/h1&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The combination of the Arduino Ethernet Shield with the FRDM-KL25Z makes a web server implementation very easy. With this, I can use and control the board through the network, a first and simple step into the IoT (Internet of Things)&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;The current project is available on &lt;a class="jive-link-external-small" href="https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/FRDM-KL25Z/FRDM-KL25Z_Eth" rel="nofollow ugc noopener" style="font-family:inherit;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;GitHub here&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;Other ideas for a continuation of this series:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Having the HTML pages with Java scripts and images on the SD card&lt;/li&gt;&lt;li&gt;Adding easier network integration, like using DHCP instead of static IP addresses&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;margin-bottom:1.625em;color:#373737;"&gt;Happy Webing&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/16x16/__key/communityserver-wikis-components-files/00-00-00-01-49/2425.contentimage_5F00_1.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/49/2425.contentimage_1.png-16x16.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=VTyonY2CKNHCkL%2FDw2E1rXmjntQE11s1sbVKZPMwz30%3D&amp;amp;se=2026-08-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zGEM7pHL10Vt71gae75OdA==" style="max-height: 16px;max-width: 16px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>