static void Main4(string[] args) { var cli1 = new ShadowSocksClientStream(); cli1.Plug(new Uri($"ss://*****:*****@127.0.0.1:8338")); cli1.Plug("127.0.0.1", 8338); cli1.Route("httpbin.org", 80); // var cli2 = new Socks4Client(); // cli2.Plug("127.0.0.1", 1079); // cli2.Route("httpbin.org", 80); var cli = cli1; void read() { var buf = new byte[1024 * 1024]; var c = cli.Read(buf, 0, buf.Length); if (c > 0) { var str = Encoding.UTF8.GetString(buf, 0, c); Console.WriteLine(str); Console.WriteLine("\r\n=========="); Task.Run(delegate { read(); }); } } Task.Run(delegate { read(); }); cli.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1 Host: httpbin.org Keep-Alive: true ")); Thread.Sleep(1000); Console.WriteLine("============"); Console.ReadLine(); cli.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1 Host: httpbin.org ")); Console.ReadLine(); }
public void Check_ss() { var port = GetFreePort(); var server = new ShadowSocksServer().Track(this); server.Run("ss://*****:*****@0.0.0.0:" + port); var cli = new ShadowSocksClientStream("chacha20", "123", "127.0.0.1", port, host, 80).Track(this); TestConnction(cli, host); }
public void Check_ss_by_river_client() { // default null var cli = new ShadowSocksClientStream("chacha20", "123", "rt.xkip.ru", 18338, host, 80).Track(this); TestConnction(cli, host); // force dns cli = new ShadowSocksClientStream("chacha20", "123", "rt.xkip.ru", 18338, host, 80, proxyDns: true).Track(this); TestConnction(cli, host); // force ip cli = new ShadowSocksClientStream("chacha20", "123", "rt.xkip.ru", 18338, host, 80, proxyDns: false).Track(this); TestConnction(cli, host); }
static void Main6() { /* * var ss = new ShadowSocksServer(); * ss.Run("ss://*****:*****@0.0.0.0:18338"); */ string host = "www.google.com"; // default null var cli = new ShadowSocksClientStream("chacha20", "123", "127.0.0.1", 18338, host, 80); TestConnction(cli, host); Console.ReadLine(); }
static void Main3(string[] args) { var cli = new ShadowSocksClientStream(); cli.Plug(new Uri("ss://*****:*****@RHOP2:8338")); cli.Plug("RHOP2", 8338); cli.Route("10.7.1.1", 8338); var cli2 = new ShadowSocksClientStream(); cli2.Plug(new Uri("ss://*****:*****@_:0"), cli); cli2.Route("10.7.0.1", 80); void read() { var buf = new byte[1024 * 1024]; var c = cli2.Read(buf, 0, buf.Length); if (c > 0) { var str = Encoding.UTF8.GetString(buf, 0, c); Console.WriteLine(str); Console.WriteLine("\r\n==========<< " + c); Task.Run(delegate { read(); }); } } Task.Run(delegate { read(); }); cli2.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1 Host: httpbin.org Keep-Alive: true ")); /* * Thread.Sleep(1000); * Console.WriteLine("============"); */ Console.ReadLine(); cli2.Write(Encoding.ASCII.GetBytes(@"GET / HTTP/1.1 Host: httpbin.org ")); Console.ReadLine(); cli2.Write(Encoding.ASCII.GetBytes("GET /\r\n\r\n")); /* * var buf = new byte[1024 * 1024]; * var c = cli2.Read(buf, 0, buf.Length); * var str = Encoding.UTF8.GetString(buf, 0, c); * Console.WriteLine(str); * if (str.Contains("THIS IS SUPER PRIVATE SITE")) * { * Console.WriteLine("THIS WORKS!!!"); * } * Console.ReadLine(); */ }