解析一些通过套接字的信息

时间:2016-05-10 18:22:32

标签: .net sockets

我的任务是创建某种代理服务器,自动更改任何网站上的所有链接。

我的主要问题是我甚至不知道如何描述我的问题谷歌。

所以,现在我有工作代理

        while (true)
        {
            if (myTCP.Pending())
            {
                using (var myClient = myTCP.AcceptSocket())
                {
                    if (myClient.Connected)
                    {
                        var httpRequest = ShitConverter.ReadToEnd(myClient);
                        var httpRequestString = Encoding.ASCII.GetString(httpRequest);
                        var myReg = new Regex(@"Host: (((?<host>.+?):(?<port>\d+?))|(?<host>.+?))\s+", RegexOptions.Multiline | RegexOptions.IgnoreCase);
                        var m = myReg.Match(System.Text.Encoding.ASCII.GetString(httpRequest));
                        var host = m.Groups["host"].Value;
                        var port = 0;
                        if (!int.TryParse(m.Groups["port"].Value, out port))
                        {
                            port = 80;
                        }
                        var myIPHostEntry = Dns.GetHostEntry(host);
                        var myIPEndPoint = new IPEndPoint(myIPHostEntry.AddressList[0],port);                          
                    using (var myReroutingSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
                        {
                            myReroutingSocket.Connect(myIPEndPoint);
                            if (myReroutingSocket.Send(httpRequest, httpRequest.Length, SocketFlags.None) !=
                                httpRequest.Length)
                            {
                                Console.WriteLine("Sending error");
                            }
                            else
                            {
                                var httpResponse = StConverter.ReadToEnd(myReroutingSocket);
                                var httpStringResponse = Encoding.ASCII.GetString(httpResponse);
                                myClient.Send(httpResponse, httpResponse.Length, SocketFlags.None);
                            }
                        }
                    }
                }
            }
        }`

现在我需要找到浏览器会显示给我的所有HTML内容。 我认为httpResponse变量持有它,但我不知道如何解释我得到的所有这些字节。 httpResponse的字符串版本包含类似

的内容
??\u0019\u001c\f???&?\u0002K?~???

所以我非常感谢我的问题提供任何帮助和指导。

0 个答案:

没有答案