eee already provided a solution for your problem. Let me try to answer the question "Why is System.Net.Sockets missing?".
As Bart points out, the Android API is available without limitations. The reason is that it is an automated conversion. So it is entirely available by design.
In contrast to the Android API, the .NET API is handcrafted on top of the Android API. For example, the .NET Dictionary class is implemented as a wrapper of java.util.Map and System.String as a wrapper of java.lang.String. In other words, we take the API from .NET but the implementation from Java. This is in contrast to Mono. You will see .NET types added in new releases.