Request for Recommendation: Winsock-Compatible TCP Client with Message Queue Support.

Drusti Kumar 0 Reputation points
2025-08-11T09:04:22.82+00:00

Hi Team,

We need to change the type of socket connection in our .NET Framework 4.7 application. Currently, we are using Winsock, but we are facing multiple connectivity issues. I am planning to switch to a different socket implementation.

I have tried multiple approaches such as WatsonTcp, SuperSocket, and NetMQ. However, these either require server-side changes or do not support message queuing. I am not considering System.Net.Sockets, since it requires manual queuing, which results in slower processing.

Requirements:

• Normal plain TCP socket connection (no protocol changes).

• Winsock compatibility.

• Only client-side changes (server remains on Winsock).

• Must support message queuing.

• Easy migration from our existing event-driven Winsock pattern.

In addition, we are also migrating to .NET 8, so the recommended solution should work for both .NET Framework 4.7 and .NET 8.

Could you please suggest the best option that meets these requirements?

Developer technologies | .NET | Other
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Bruce (SqlWork.com) 79,101 Reputation points Volunteer Moderator
    2025-08-11T17:25:58.3666667+00:00

    your question is not clear.

    Winsock is the low level C/C++ network library supported by windows. You are not going to find an alternative unless you switch O/S. System.Net.Sockets is .net library built on top of the native O/S networking library. On window it uses Winsocket. On Linux / MacOs it uses the socket library (though MacOs uses the BSD version).

    if you use WSL on windows to run linux apps, you can use the socket library with C# either via p-invoke or System.Net.Sockets.

    WatsonTcp and SuperSockets are just wrappers around the System.Net.Sockets library. NetMQ is queuing library, that is also built on the System.Net.Sockets library.

    Message queuing is typically a library built on top of a network transport (not necessarily tcp/udp). If you want a network queuing library, there are several. Generally using a queuing library requires changes at both the client and server as it is typically a messaging system that uses the network as a transport.

    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.