コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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);
                    }
                }
            }
        }
コード例 #3
0
        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);
                                }
                            }
                }
            }
        }