<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sockets on 7sharp9</title><link>https://7sharp9.github.io/tags/sockets/</link><description>Recent content in Sockets on 7sharp9</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>7sharp9@mail.com (Dave Thomas)</managingEditor><webMaster>7sharp9@mail.com (Dave Thomas)</webMaster><copyright>© 2026 Dave Thomas</copyright><lastBuildDate>Mon, 04 Apr 2011 00:00:00 +0000</lastBuildDate><atom:link href="https://7sharp9.github.io/tags/sockets/index.xml" rel="self" type="application/rss+xml"/><item><title>Pipeline processing 3</title><link>https://7sharp9.github.io/programming/2011-04-04-pipeline-processing-3/</link><pubDate>Mon, 04 Apr 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-04-04-pipeline-processing-3/</guid><description>&lt;p&gt;Ok so I have been offline for a while now, what with starting a new financial contract in London and not having any broadband access for a while.  I have
been working on something, honest!&lt;/p&gt;
&lt;p&gt;Since the last post I have been reflecting on the pipeline design and it had a distinct object orientated feel to it that I wasnt happy with, so I have
amended the structure of the code and come up with the following which simplifies in some areas and expands in others&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 4</title><link>https://7sharp9.github.io/programming/2011-01-28-sockets-and-bockets-part-4/</link><pubDate>Fri, 28 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-28-sockets-and-bockets-part-4/</guid><description>&lt;h2 class="relative group"&gt;Welcome to part 4
 &lt;div id="welcome-to-part-4" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-4" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;If you were looking forward to some exciting new F# code this time your going
to be disappointed, however if you are like me and like looking at graphs and
stats and digging in deeper into the code then your going to enjoy this, lets
get started&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 3</title><link>https://7sharp9.github.io/programming/2011-01-20-sockets-and-bockets-part-3/</link><pubDate>Thu, 20 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-20-sockets-and-bockets-part-3/</guid><description>&lt;h2 class="relative group"&gt;Welcome to part three!
 &lt;div id="welcome-to-part-three" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-three" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;As promised heres a description of the inner workings.  I&amp;rsquo;m sick to death of
typing SocketAsyncEventArgs so from now on I will refer to it as SAEA.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 2</title><link>https://7sharp9.github.io/programming/2011-01-14-sockets-and-bockets-part-2/</link><pubDate>Fri, 14 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-14-sockets-and-bockets-part-2/</guid><description>&lt;h3 class="relative group"&gt;Welcome to part two
 &lt;div id="welcome-to-part-two" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-two" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Lets jump in at the deep end and take a look at some code&amp;hellip;&lt;/p&gt;
&lt;p&gt;When you look at the method syntax for the xxxAsync methods you will notice
they return a boolean value that indicates if the method completed
synchronously, this means that you have to check the return value every time
you use one of the methods and invoke the callback yourself if it completes
synchronously.  In practice this hardly ever happens, and normally only on a
send operation.  But as it is a possibility we will add module with a some
extension methods in to help us out, this will make the code more readable and
avoid unnecessary duplication.&lt;!-- more --&gt;&lt;/p&gt;</description></item><item><title>Sockets and Bockets 1</title><link>https://7sharp9.github.io/programming/2011-01-13-sockets-and-bockets-1/</link><pubDate>Thu, 13 Jan 2011 00:00:00 +0000</pubDate><author>7sharp9@mail.com (Dave Thomas)</author><guid>https://7sharp9.github.io/programming/2011-01-13-sockets-and-bockets-1/</guid><description>&lt;h3 class="relative group"&gt;Welcome to part 1
 &lt;div id="welcome-to-part-1" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#welcome-to-part-1" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;A while back I read an interesting article by &lt;em&gt;Brian McNamara&lt;/em&gt; &lt;a href="http://lorgonblog.wordpress.com/2010/03/28/f-async-on-the-server-side/" target="_blank" rel="noreferrer"&gt;f-async-on-the-server-side&lt;/a&gt;
which describes C# and F# versions of a simple asynchronous
socket server, one of the driving forces behind the article was how F# can
wrap the traditional asynchronous model with &lt;a href="http://msdn.microsoft.com/en-us/library/dd233250.aspx" target="_blank" rel="noreferrer"&gt;Asynchronous Workflows&lt;/a&gt;, this
produces nice clean simple code compared to the C# version which uses lambda
expressions, the code looks quite ugly in this style!  However thats not the
end of the story, a lot of memory fragmentation can occur using the APM model
when there is a high throughput, so I thought I would see if I could take this
a step further&amp;hellip;&lt;!-- more --&gt;&lt;/p&gt;</description></item></channel></rss>