SocketAbstraction
Returns a value indicating whether the specified  Socket can be used
            to send data.
            
public static Task ConnectAsync(Socket socket, EndPoint remoteEndpoint, CancellationToken cancellationToken)
Receives data from a bound  Socket.
            
Receives data from a bound  Socket into a receive buffer.
            
public static Task<int> ReadAsync(Socket socket, byte[] buffer, CancellationToken cancellationToken)
Reads a byte from the specified  Socket.
            
public static void ReadContinuous(Socket socket, byte[] buffer, int offset, int size, Action<byte[], int, int> processReceivedBytesAction)
Sends a byte using the specified  Socket.