Ejemplo n.º 1
0
        public static Socks4Request From(IByteReceiver receiver)
        {
            var structSize = Marshal.SizeOf(typeof(Socks4RequestHeader));

            var requestHeader =
                Socks4RequestHeaderFabric.FromHeader(receiver.Receive(structSize));

            var userName = ReadUserName(receiver);

            var socks4Request = new Socks4Request {
                Header = requestHeader, UserName = userName
            };

            return(socks4Request);
        }
Ejemplo n.º 2
0
        private static string ReadUserName(IByteReceiver clientToHandle)
        {
            byte readedByte;
            var  username = new List <byte>();

            do
            {
                readedByte = clientToHandle.Receive(1).First();
                if (readedByte == 0)
                {
                    break;
                }
                username.Add(readedByte);
            } while (true);
            return(Encoding.ASCII.GetString(username.ToArray()));
        }