public static IDisposableConnection<ArraySegment<byte>> Create(Socket socket)
 {
     var receiver = socket.CreateReceiver();
     var sender = socket.CreateSender();
     var disposable = new SocketConnection(socket);
     return new DisposableConnection<ArraySegment<byte>>(receiver, sender, disposable);
 }