コード例 #1
0
ファイル: Program.cs プロジェクト: Eugene2992/KSIS
        public static void HTTPWorking(byte[] bytes, NetworkStream MyCatchStream, TcpClient ProxyClient, int LengthReaded)
        {
            try
            {
                string[] ParsedStrings = Encoding.ASCII.GetString(bytes).Trim().Split(new char[] { '\r', '\n' });
                string   NamePort      = "";
                if (ParsedStrings.Length > 1)
                {
                    NamePort = ParsedStrings.FirstOrDefault(x => x.Contains("Host"));
                    NamePort = NamePort.Substring(NamePort.IndexOf(":") + 2);
                    string[] NameAndPort = NamePort.Trim().Split(new char[] { ':' }); // получаем имя домена и номер порта
                    NamePort = ParsedStrings[2];
                    Console.WriteLine("Browser Request: ");
                    Console.WriteLine(NamePort);
                    Console.Write("Domain name:  ");
                    Console.WriteLine(NameAndPort[0]);
                    if (NameAndPort.Length > 1)
                    {
                        Console.Write("Port: ");
                        Console.WriteLine(NameAndPort[1]);
                    }
                    Console.WriteLine("______________________________________________");
                    TcpClient ToServer;
                    //Если указан порт, то true, если нет, то false и по стандартному порту "80"
                    if (NameAndPort.Length == 2)
                    {
                        ToServer = new TcpClient(NameAndPort[0], int.Parse(NameAndPort[1]));
                    }
                    else
                    {
                        ToServer = new TcpClient(NameAndPort[0], DefaultPort);
                    }

                    NetworkStream ToServerStream = ToServer.GetStream();

                    //Отправление исходного запроса.
                    if (MyCatchStream.CanWrite)
                    {
                        ToServerStream.Write(AbsToRel(bytes), 0, LengthReaded);
                    }

                    //Прием ответа от сервера
                    byte[] ServerReply        = new byte[BufferLength];
                    int    ServerLengthReaded = 0;
                    if (ToServerStream.CanRead)
                    {
                        ServerLengthReaded = ToServerStream.Read(ServerReply, 0, BufferLength);
                    }

                    string[] ParsedStringsServerReply = Encoding.ASCII.GetString(ServerReply).Trim().Split(new char[] { '\r', '\n' });
                    Console.WriteLine("Server Reply: ");
                    Console.Write(NamePort);
                    Console.Write(" ");
                    Console.WriteLine(ParsedStringsServerReply[0]);
                    Console.WriteLine("______________________________________________");

                    //Отправление ответа сервера браузеру
                    if (MyCatchStream.CanWrite)
                    {
                        MyCatchStream.Write(ServerReply, 0, ServerLengthReaded);
                    }
                    ToServerStream.CopyTo(MyCatchStream);
                    //https connect
                }
            }
            catch
            {
                return;
            }
            finally
            {
                ProxyClient.Dispose();
            }
        }
コード例 #2
0
ファイル: PacketType.cs プロジェクト: kotyk7/Godotcraft
 public static void init()
 {
     ToServer.init();
     ToClient.init();
 }