private static bool ReceivePacketVer1(TcpClient client, out RadminPackets.PacketVer1 response)
        {
            bool status = false;
            int  blocklen, datalen;

            response = new RadminPackets.PacketVer1();

            RadminPackets.PacketHeaderVer1 header = new RadminPackets.PacketHeaderVer1();
            RadminPackets.PacketDataVer1   block  = new RadminPackets.PacketDataVer1();

            response.code    = 0;
            response.datalen = 0;
            response.data    = null;

            byte[] buffer = GetBytesFromTcp(client);
            header = ByteTools.ByteArrayToStructure <RadminPackets.PacketHeaderVer1>(buffer);



            return(status);
        }
        private static bool SendPacketVer1(TcpClient client, RadminPackets.PacketVer1 packet)
        {
            bool status = false;

            RadminPackets.PacketHeaderVer1 header = new RadminPackets.PacketHeaderVer1();
            RadminPackets.PacketDataVer1   block  = new RadminPackets.PacketDataVer1();

            block.code = packet.code;
            header.one = 1;

            using (var stream = client.GetStream())
            {
                byte[] headerBytes = ByteTools.ToByteArray(header);
                stream.Write(headerBytes, 0, headerBytes.Length);

                byte[] blockBytes = ByteTools.ToByteArray(block);
                stream.Write(blockBytes, 0, blockBytes.Length);

                status = true;
            }

            return(status);
        }
        private static RadminAuthInfo GetVersion(string host, int port, int timeout = 2000)
        {
            RadminAuthInfo radmin = new RadminAuthInfo();

            RadminPackets.PacketVer1 request = new RadminPackets.PacketVer1(), response = new RadminPackets.PacketVer1();

            TcpClient tcp = new TcpClient()
            {
                ReceiveTimeout = timeout,
                SendTimeout    = timeout
            };

            tcp.Connect(host, port);

            request.code    = 0x08;
            request.datalen = 0;
            request.data    = null;

            SendPacketVer1(tcp, request);

            tcp.Close();

            return(radmin);
        }