Custom Sockets for .NET Solutions: Case Studies
Learn more about Dart Consulting Services and Custom Development >
Case Study: Scalable server with rock-solid reliability and infallible lost connection detection
Problem Definition:
Dart's customer is a software consulting company but lacks experience in sockets development. There are hundreds of client devices that need to connect to a proprietary TCP server. However, the server is unreliable and needs to be replaced.
Background:
Remote devices provide periodic status updates to a centralized server. The server must handle up to 250 devices at once, and run 24/7. The devices are solar powered and are prone to losing connections. The server must reliably detect when a device's connection has been dropped within a short time frame.
Dart was chosen for its long history of providing solid Internet communications software.
Technical Approach:
Dart provided an inheritable server class library with the scalability, reliability and resiliency the customer demanded.
This solution was created using VB.NET Framework 3.5.
Case Study: Customized object transfer protocol used in a complete client-server solution
Problem Definition:
Dart's customer requires a means of sending messages and objects between two endpoints over TCP. Not all objects to be sent are serializable by the .NET Framework.
Background:
The solution must handle a vast array of object types, including Strings, DataRows and FileStreams. Objects may be sent by either the client or the server. Multiple objects may be sent over a single connection. The protocol must include receipt acknowledgement and integrity confirmation of received objects. The solution must include both synchronous and asynchronous methods for sending and receiving.
Dart was chosen for its extensive experience in Internet protocols, and the inherent efficiency of using an established product as the project's foundation.
Technical Approach:
Dart provided an extensible class library built upon PowerTCP Sockets for .NET components. A custom protocol was designed for serializing and streaming objects over a TCP connection. The solution included client and server applications implementing the protocol.
This solution was created using VB.NET Framework 2.0.
Case Study: A broadcast and system targeted message system with logging and encryption
Problem Definition:
Dart's customer requires a means for sending and receiving messages to and from all systems on the network. Messages may be sent to a targeted list of one or more systems.
Background:
The solution must include client applications and a central server, which records all messages received. The system must be high-performance and handle broadcasting to 5000 or more recipients in a very short time.
Clients may solicit responses from other clients, or receive unsolicited messages. Clients may filter messages received from specified systems. Clients must acknowledge all messages received. Clients must have the option of encrypting and decrypting messages using strong AES encryption.
Dart was chosen for its background in both high-performance sockets-level implementations, and for its experience in strong AES security.
Technical Approach:
Dart provided a class library which included server and user classes. The messaging system was built upon the UDP protocol, and included an acknowledgement protocol for ensuring the delivery of messages. Dart's PowerTCP Zip Compression for .NET was utilized to add AES encryption for secure messages.
The solution was created using C# Framework 2.0.
Learn more about Dart Consulting Services and Custom Development >