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); }