public override Task OpenAsync(CancellationToken cancellationToken)
        {
            if (cancellationToken.IsCancellationRequested)
            {
                return(Task.FromCanceled(cancellationToken));
            }

            if (IsOpen)
            {
                throw new TTransportException(TTransportException.ExceptionType.AlreadyOpen, "Socket already connected");
            }

            if (_port <= 0)
            {
                throw new TTransportException(TTransportException.ExceptionType.NotOpen, "Cannot open without port");
            }

            if (_client == null)
            {
                throw new InvalidOperationException("Invalid or not initialized udp client");
            }

            _client.Connect(_host, _port);
            return(Task.CompletedTask);
        }
 internal ThriftUdpClientTransport(string host, int port, MemoryStream byteStream, IUdpClient udpClient)
 {
     _byteStream = byteStream;
     _client     = udpClient;
     _client.Connect(host, port);
 }