private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { // USE SSL var res = await socketAsync.GetFiberRwSSL <string>(certificate, "localhost"); if (res.IsError) { Console.WriteLine(res.ErrMsg); client.ShutdownBoth(true); return; } var fiberRw = res.FiberRw; // var fiberRw = await socketAsync.GetFiberRw(); client.SetConnected(); while (true) { try { await DataOnByLine(fiberRw); } catch { break; } } client.ShutdownBoth(); }
private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { var res = await socketAsync.GetFiberRwSSL(null, ""); //我们在这地方使用SSL加密 if (res.IsError) { Console.WriteLine(res.ErrMsg); client.ShutdownBoth(); return; } client.SetConnected(); for (; ;) //我们可以在这里处理数据或者在上面 { try { await ReadCommand(res.FiberRw); } catch (Exception er) { Console.WriteLine(er); break; } } client.ShutdownBoth(); }
private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { // USE SSL+GZIP var res = await socketAsync.GetFiberRwSSL <string>(certificate, "localhost", (input, output) => { //var gzip_input = new GZipStream(input, CompressionMode.Decompress, true); //var gzip_output = new GZipStream(output, CompressionMode.Compress, true); //return new GetFiberRwResult(gzip_input, gzip_output); //return gzip mode var lz4_input = K4os.Compression.LZ4.AsyncStreams.LZ4Stream.Decode(input, leaveOpen: true); var lz4_output = K4os.Compression.LZ4.AsyncStreams.LZ4Stream.Encode(output, leaveOpen: true); return(new GetFiberRwResult(lz4_input, lz4_output)); //return lz4 mode }); if (res.IsError) { Console.WriteLine(res.ErrMsg); client.ShutdownBoth(true); return; } var fiberRw = res.FiberRw; //var fiberRw = await socketAsync.GetFiberRw((input, output) => //{ // var lz4_input = K4os.Compression.LZ4.Streams.LZ4Stream.Decode(input, leaveOpen: true); // var lz4_output = K4os.Compression.LZ4.Streams.LZ4Stream.Encode(output, leaveOpen: true); // return new GetFiberRwResult(lz4_input, lz4_output); //return lz4 mode //}); // var fiberRw = await socketAsync.GetFiberRw(); client.SetConnected(); var testspeed = Stopwatch.StartNew(); var i = 0L; while (true) { try { i++; await DataOnByLine(fiberRw); if (i % 10000 == 0) { Console.WriteLine(testspeed.ElapsedMilliseconds + " ms"); testspeed.Restart(); } //Console.WriteLine("OK"); } catch { break; } } client.ShutdownBoth(); }
private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { var res = await socketAsync.GetFiberRwSSL(null, "localhost"); var fiberRw = res.FiberRw; client.SetConnected(); while (true) { try { string a = await fiberRw.ReadString(); Console.WriteLine(a); } catch { break; } } client.ShutdownBoth(true); }
private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { // USE SSL+GZIP var res = await socketAsync.GetFiberRwSSL <string>(null, "localhost", (input, output) => { var gzip_input = new GZipStream(input, CompressionMode.Decompress, true); var gzip_output = new GZipStream(output, CompressionMode.Compress, true); return(new GetFiberRwResult(gzip_input, gzip_output)); //return gzip mode }); if (res.IsError) { Console.WriteLine(res.ErrMsg); client.ShutdownBoth(true); return; } var fiberRw = res.FiberRw; // var fiberRw = await socketAsync.GetFiberRw(); client.SetConnected(); while (true) { try { await DataOnByLine(fiberRw); } catch { break; } } client.ShutdownBoth(); }
private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { var res = await socketAsync.GetFiberRwSSL(async stream => { var sslstream = new SslStream(stream, false, (sender, certificate, chain, errors) => true, (sender, host, certificates, certificate, issuers) => certificate); try { await sslstream.AuthenticateAsClientAsync("localhost"); } catch (Exception er) { Console.WriteLine(er.Message); return(null); } return(sslstream); }); var fiberRw = res.FiberRw; client.SetConnected(); while (true) { try { string a = await fiberRw.ReadString(); Console.WriteLine(a); } catch { break; } } client.ShutdownBoth(true); }
/// <summary> /// 返回FiberRw /// </summary> /// <param name="socketAsync"></param> /// <returns></returns> protected virtual async Task <IFiberRw> GetFiberRw(ISockAsyncEventAsClient socketAsync) { if (is_use_ssl) //SSL Config { var result = await socketAsync.GetFiberRwSSL(Certificate); if (result.IsError) { Log.Error(result.ErrMsg); return(null); } else { return(result.FiberRw); } } else { return(await socketAsync.GetFiberRw()); } }
private static async void Client_BinaryInput(ISocketClient client, ISockAsyncEventAsClient socketAsync) { var res = await socketAsync.GetFiberRwSSL(null, "", (input, output) => //在GZIP的基础上在通过SSL 加密 { var gzip_input = new GZipStream(input, CompressionMode.Decompress, true); var gzip_output = new GZipStream(output, CompressionMode.Compress, true); return(new GetFiberRwResult(gzip_input, gzip_output)); }); //我们在这地方使用SSL加密 if (res.IsError) { Console.WriteLine(res.ErrMsg); client.ShutdownBoth(); return; } client.SetConnected(); for (; ;) //我们可以在这里处理数据或者在上面 { try { await ReadCommand(res.FiberRw); } catch (System.Net.Sockets.SocketException) { break; } catch (Exception er) { Console.WriteLine(er); break; } } socketAsync.Disconnect(); }