The Winsock.NET project originally started back in 2005, when I attempted to write a chat application that would have a desktop client as well as a Java client to put on a webpage. Naturally coming from VB6 I had wanted to use the Winsock control, but it was nowhere to be found, so for that chat application I ended up cobbling something together, with I think the TcpClient.
While .NET offers some powerful network communication tools, they aren’t always simple to use – especially not like the original Winsock control from VB6. I decided in my own time, to create something that would make network communication easier for developers just getting into network communication on .NET.
This all led to the first version of Winsock.NET, which was posted on the CodeProject. This was a very basic version of the component and was pretty limited in the transmission of data (the Send routines only support a byte array or a bitmap!).
The next release version had to wait until Nov. 26 2007 and was the 4th version. This was again posted to the CodeProject (I have no clue what happened to the intermediary versions). With this version the component became thread-safe, and gained the ability to send any serializable object – though you could still talk to clients/servers that didn’t support the required packet headers by turning on legacy support. As I learned later, there were issues with the thread-safe event calling – namely that it was trapping errors in event handlers and raising them in the ErrorReceived event as if they were from the component.
A new version has just been released (Aug. 31, 2015)! You can find it on GitHub. I’ve cleaned it up a bit, and added a requested feature: SSL support. SSL support uses the SslStream and an X509Certificate, so it should also support TLS.