Now I understand why this isn’t working, because ISocketSubsystem is an interface. What class implements this interface? How should I be using these classes? Has anyone done anything like this yet, or attempted to?
ISocketSubsystem::Get() returns a singleton for the running platform’s socket subsystem. It is this singleton that implements the ISocketSubsystem interface, which is why your example code works. You will likely stumble upon this pattern in other places as well.
In the Networking module there are two helper classes, FTcpSocketBuilder and FTcpListener, for TCP clients and servers respectively. Please note that this module is currently not documented, and the API may change in the future, so use it with care. At the very least, it will provide you with some examples on how to create sockets in UE4. Look at FTcpSocketBuilder::Build() to see what it is doing. The module also contains helper classes for UDP sockets.
In particular, note that, after creating a socket you will also have to bind to a port and possibly perform other initialization steps in order to establish a connection to your server.