static void Net_Test1_PlainTcp_Client() { for (int i = 0; i < 1; i++) { ConnSock sock = LocalNet.Connect(new TcpConnectParam("dnobori.cs.tsukuba.ac.jp", 80)); sock.StartPCapRecorder(new PCapFileEmitter(new PCapFileEmitterOptions(new FilePath(@"c:\tmp\190610\test1.pcapng", flags: FileFlags.AutoCreateDirectory), true))); { var st = sock.GetStream(); //sock.DisposeSafe(); var w = new StreamWriter(st); var r = new StreamReader(st); w.WriteLine("GET /ja/ HTTP/1.0"); w.WriteLine("HOST: dnobori.cs.tsukuba.ac.jp"); w.WriteLine(); w.Flush(); while (true) { string?s = r.ReadLine(); if (s == null) { break; } Con.WriteLine(s); } st.Dispose(); } } }
static void Net_Test2_Ssl_Client() { string hostname = "www.google.co.jp"; using (ConnSock sock = LocalNet.Connect(new TcpConnectParam(hostname, 443))) { using (SslSock ssl = new SslSock(sock)) { //ssl.StartPCapRecorder(new PCapFileEmitter(new PCapFileEmitterOptions(new FilePath(@"c:\tmp\190610\test1.pcapng", flags: FileFlags.AutoCreateDirectory), false))); var sslClientOptions = new PalSslClientAuthenticationOptions() { TargetHost = hostname, ValidateRemoteCertificateProc = (cert) => { return(true); }, }; ssl.StartSslClient(sslClientOptions); var st = ssl.GetStream(); var w = new StreamWriter(st); var r = new StreamReader(st); w.WriteLine("GET / HTTP/1.0"); w.WriteLine($"HOST: {hostname}"); w.WriteLine(); w.WriteLine(); w.Flush(); while (true) { string?s = r.ReadLine(); if (s == null) { break; } Con.WriteLine(s); } } } }
static async Task Net_Test13_WebSocketClientAsync() { using (ConnSock sock = LocalNet.Connect(new TcpConnectParam("echo.websocket.org", 80))) { using (WebSocket ws = new WebSocket(sock)) { await ws.StartWebSocketClientAsync("wss://echo.websocket.org"); using (var stream = ws.GetStream()) using (var r = new StreamReader(stream)) using (var w = new StreamWriter(stream)) { w.AutoFlush = true; for (int i = 1; i < 20; i++) { string src = Str.MakeCharArray((char)('a' + (i % 25)), i * 100); Con.WriteLine(src.Length); //await w.WriteLineAsync(src); await stream.WriteAsync((src + "\r\n")._GetBytes_Ascii()); string?dst = await r.ReadLineAsync(); //Con.WriteLine(dst); Con.WriteLine(i); Debug.Assert(src == dst); } } } } }