2 years ago, I wrote a RTSP communication stack with server, listener and client implementations. It worked asynchronous using the asynchronous event pattern (EAP, Begin/End-callbacks), was fast and more or less robust. However, it was a real PITA to design the socket both scalable as well as stable with such an 'open' protocol (look, the protocol looks like this, but if this happens, a message may look like this and oh yeah, the server can send requests to the client when this and this...)
Because I (obviously!) did so well, I was honored with the task of writing a SIP communication stack. And you know what? The protocol looks nearly the same, but has hundreds of other unspecified or open rules (or exceptions).
Before I quit my job and apply somewhere as a gardener, I would like to ask if any of you guys know a mature and stable socket/network framework that fills (hopefully most of) those requirements:
- Asynchronous using the task-based pattern (TAP, async await..)
- Robust (a server/client shouldn't crash when the socket ungracefully aborts)
- Adapting DI patterns
- Has packet analysis features
I don't mind implementing all kinds of protocols on top of it myself, but I need a robust foundation. The System.Net.Sockets namespace is just an inconsistent, legacy and compatibility crippled piece of crap.
Thanks for your time!