資源簡介
https://blog.csdn.net/qq_34719168/article/details/87893803
博文項目源代碼
代碼片段和文件信息
using?CommonLib;
using?DotNetty.Buffers;
using?DotNetty.Handlers.Timeout;
using?DotNetty.Transport.Bootstrapping;
using?DotNetty.Transport.Channels;
using?DotNetty.Transport.Channels.Sockets;
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Net;
using?System.Text;
using?System.Threading.Tasks;
namespace?Client
{
????class?Program
????{
????????static?void?Main(string[]?args)?=>?RunClientAsync().Wait();
????????static?async?Task?RunClientAsync()
????????{
????????????var?group?=?new?MultithreadEventLoopGroup();
????????????try
????????????{
????????????????var?bootstrap?=?new?Bootstrap();
????????????????bootstrap
????????????????????.Group(group)
????????????????????.Channel()
????????????????????.Option(ChannelOption.TcpNodelay?true)
????????????????????.Handler(new?ActionChannelInitializer(c?=>
????????????????????{
????????????????????????IChannelPipeline?pipeline?=?c.Pipeline;
????????????????????????//配置編碼解碼器
????????????????????????pipeline.AddLast(new?CommonClientEncoder());
????????????????????????pipeline.AddLast(new?CommonClientDecoder());
????????????????????????//?IdleStateHandler?心跳
????????????????????????//客戶端為寫IDLE
????????????????????????pipeline.AddLast(new?IdleStateHandler(0?100?0));//第一個參數為讀,第二個為寫,第三個為讀寫全部
????????????????????????pipeline.AddLast(new?HelloClientHandler());
????????????????????}));
????????????????IChannel?clientChannel?=?await?bootstrap.ConnectAsync(new?IPEndPoint(IPAddress.Parse(“127.0.0.1“)?3399));
????????????????Console.ReadLine();
????????????????await?clientChannel.CloseAsync();
????????????}
????????????finally
????????????{
????????????????await?group.ShutdownGracefullyAsync(TimeSpan.FromMilliseconds(100)?TimeSpan.FromSeconds(1));
????????????}
????????}
????}
????class?HelloClientHandler?:?ChannelHandlerAdapter
????{
????????public?override?void?UserEventTriggered(IChannelHandlerContext?context?object?evt)
????????{
????????????Console.WriteLine(“客戶端循環心跳監測發送:?“?+?DateTime.Now);
????????????if?(evt?is?IdleStateEvent?eventState)
????????????{
????????????????if?(eventState.State?==?IdleState.WriterIdle)
????????????????{
????????????????????context.WriteAndFlushAsync($“biubiu:{DateTime.Now}“);
????????????????}
????????????}
????????}
????????public?override?void?ChannelActive(IChannelHandlerContext?context)
????????{
????????????Console.WriteLine(“我是客戶端.“);
????????????Console.WriteLine($“連接至服務端{context}.“);
????????????//編碼器發送至服務端
????????????string?message?=?“客戶端1“;
????????????context.WriteAndFlushAsync(message);
????????}
????????public?override?void?ChannelRead(IChannelHandlerContext?context?object?message)
????????{
????????????if?(message?is?byte[]?o)
????????????{
????????????????Console.WriteLine($“解碼器方式,從服務端接收:{Encoding.UTF8.GetString(o)}:{DateTime.Now}“);
????????????}
????????}
????????public?override?void?ChannelReadCompl
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????174??2019-02-23?16:07??Lession2\.vs\Lession2\DesignTimeBuild\.dtbcache
????..A..H.????395776??2019-02-23?17:26??Lession2\.vs\Lession2\v15\.suo
?????文件??????????0??2019-02-23?13:22??Lession2\.vs\Lession2\v15\Server\sqlite3\db.lock
?????文件???????4096??2019-02-23?13:22??Lession2\.vs\Lession2\v15\Server\sqlite3\storage.ide
?????文件??????32768??2019-02-23?17:20??Lession2\.vs\Lession2\v15\Server\sqlite3\storage.ide-shm
?????文件????3662712??2019-02-23?17:24??Lession2\.vs\Lession2\v15\Server\sqlite3\storage.ide-wal
?????文件????????838??2019-02-23?11:33??Lession2\Client\App.config
?????文件???????9216??2019-02-23?17:24??Lession2\Client\bin\Debug\Client.exe
?????文件??????18334??2019-02-23?12:16??Lession2\Client\bin\Debug\Client.exe.config
?????文件??????22016??2019-02-23?17:24??Lession2\Client\bin\Debug\Client.pdb
?????文件???????5120??2019-02-23?16:23??Lession2\Client\bin\Debug\CommonLib.dll
?????文件????????712??2019-02-23?16:08??Lession2\Client\bin\Debug\CommonLib.dll.config
?????文件??????17920??2019-02-23?16:23??Lession2\Client\bin\Debug\CommonLib.pdb
?????文件?????175184??2018-10-08?10:15??Lession2\Client\bin\Debug\DotNetty.Buffers.dll
?????文件?????130620??2018-10-08?16:55??Lession2\Client\bin\Debug\DotNetty.Buffers.xm
?????文件?????140392??2018-10-08?10:14??Lession2\Client\bin\Debug\DotNetty.Codecs.dll
?????文件??????38209??2018-10-08?16:55??Lession2\Client\bin\Debug\DotNetty.Codecs.xm
?????文件?????153168??2018-10-08?10:14??Lession2\Client\bin\Debug\DotNetty.Common.dll
?????文件?????146861??2018-10-08?16:55??Lession2\Client\bin\Debug\DotNetty.Common.xm
?????文件??????52296??2018-10-08?10:14??Lession2\Client\bin\Debug\DotNetty.Handlers.dll
?????文件??????32387??2018-10-08?16:55??Lession2\Client\bin\Debug\DotNetty.Handlers.xm
?????文件?????180816??2018-10-08?10:14??Lession2\Client\bin\Debug\DotNetty.Transport.dll
?????文件?????198320??2018-10-08?16:55??Lession2\Client\bin\Debug\DotNetty.Transport.xm
?????文件??????35320??2016-11-14?20:41??Lession2\Client\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.dll
?????文件??????53520??2016-11-14?18:50??Lession2\Client\bin\Debug\Microsoft.Extensions.DependencyInjection.Abstractions.xm
?????文件??????44032??2017-02-17?17:01??Lession2\Client\bin\Debug\Microsoft.Extensions.Logging.Abstractions.dll
?????文件??????33625??2017-02-17?13:48??Lession2\Client\bin\Debug\Microsoft.Extensions.Logging.Abstractions.xm
?????文件??????18432??2017-02-17?17:01??Lession2\Client\bin\Debug\Microsoft.Extensions.Logging.dll
?????文件???????1652??2017-02-17?13:48??Lession2\Client\bin\Debug\Microsoft.Extensions.Logging.xm
?????文件??????21216??2018-11-08?16:24??Lession2\Client\bin\Debug\Microsoft.Win32.Primitives.dll
............此處省略5152個文件信息
評論
共有 條評論