Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RIO (Registered I/O) sockets in .NET

Are there any plans by the .NET team to make the RIO sockets that were introduced in Windows 8/Server 2012 available in .NET?

What are my options in the interim to utilize them from within .NET - extend the Socket class?

Apart from the Windows API documentation, What's New for Windows Sockets, and a Channel9 video, New Techniques to Develop Low-Latency Network Apps, I can barely find any further documentation about them.

like image 655
TJF Avatar asked Aug 24 '13 13:08

TJF


1 Answers

I've written quite a lot about my initial investigations into RIO from native code here (as the commenter to your original question pointed out).

I'd be interested to know what you're hoping to achieve by using RIO from managed code? RIO's likely target audience are developers who need to reduce latency in their networking code. Personally I'm not convinced that managed code is necessarily ideal for the kind of applications that RIO was aimed at; I may be wrong, but I'd expect that having the chance that the CLR could trigger a garbage collection at any point would not be the kind of thing that someone using RIO would want...

Anyway. I think that if you wanted to use RIO from managed code then I'd recommend NOT simply using P/Invoke and instead writing a component that manages all of the RIO work in native code and that, perhaps, calls back into managed on various network events. But again, that's just how I'd do it...

like image 111
Len Holgate Avatar answered Sep 22 '22 13:09

Len Holgate