有了域名之后怎么做自己的网站,网站返回404是什么意思,学做网站的基本,手机浏览微网站1. 引入DotNetty包
我用的开发工具是VS2022#xff0c;不同工具引入可能会有差异
工具——NuGet包管理器——管理解决方案的NuGet程序包 搜索DotNetty
2.新建EchoClientHandler.cs类
用于接收服务器返回数据
public class EchoClientHandler : SimpleChannelIn…1. 引入DotNetty包
我用的开发工具是VS2022不同工具引入可能会有差异
工具——NuGet包管理器——管理解决方案的NuGet程序包 搜索DotNetty
2.新建EchoClientHandler.cs类
用于接收服务器返回数据
public class EchoClientHandler : SimpleChannelInboundHandlerIByteBuffer
{/// summary/// Read0是DotNetty特有的对于Read方法的封装/// 封装实现了/// 1. 返回的message的泛型实现/// 2. 丢弃非该指定泛型的信息/// /summary/// param namectx/param/// param namemsg/paramprotected override void ChannelRead0(IChannelHandlerContext ctx, IByteBuffer msg){if (msg ! null){Console.WriteLine(Receive From Server: msg.ToString(Encoding.UTF8));}//ctx.WriteAsync(Unpooled.CopiedBuffer(msg));}public override void ChannelReadComplete(IChannelHandlerContext context){context.Flush();}public override void ChannelActive(IChannelHandlerContext context){Console.WriteLine(ChannelActive);//context.WriteAndFlushAsync(Unpooled.CopiedBuffer(Encoding.UTF8.GetBytes(Hello World!)));}public override void ChannelInactive(IChannelHandlerContext context){Console.WriteLine(ChannelInactive);base.ChannelInactive(context);context.CloseAsync();}public override void ExceptionCaught(IChannelHandlerContext context, Exception exception){Console.WriteLine(ExceptionCaught);Console.WriteLine(exception);context.CloseAsync();}
}3.新建DotNettyClient.cs客户端类
public class DotNettyClient
{private MultithreadEventLoopGroup group;private Bootstrap bootstrap;private IChannel channel;public async Task StartAsync(){group new MultithreadEventLoopGroup();try{bootstrap new Bootstrap().Group(group).ChannelTcpSocketChannel().Option(ChannelOption.TcpNodelay, true).Handler(new ActionChannelInitializerISocketChannel(channel {IChannelPipeline pipeline channel.Pipeline;pipeline.AddLast(new StringDecoder(Encoding.UTF8));pipeline.AddLast(new StringEncoder(Encoding.UTF8));pipeline.AddLast(new IdleStateHandler(0, 0, 600));pipeline.AddLast(new EchoClientHandler());}));channel await bootstrap.ConnectAsync(127.0.0.1, 9997);//byte[] bytes Encoding.UTF8.GetBytes(aaaaa);//await channel.WriteAndFlushAsync(Unpooled.WrappedBuffer(bytes));Console.WriteLine(Connected to server.);// 发送消息给服务器SendMessage(我是客户端);//关闭客户端连接//await channel.CloseAsync();//Console.WriteLine(Client connection closed.);}catch (Exception ex) { Console.WriteLine(ex.ToString());Console.WriteLine(ex.StackTrace);}finally{await group.ShutdownGracefullyAsync();}}public void SendMessage(string message){if (channel ! null channel.Open){Console.WriteLine(666666666666666666666666666);channel.WriteAndFlushAsync(message);Console.WriteLine(Sent message to server: message);}}
}4.使用DotNetty
我这里是窗体应用程序
public partial class Form1 : Form
{public Form1(){InitializeComponent();startClient();}public async Task startClient() {DotNettyClient client new DotNettyClient();await client.StartAsync();//连接服务//client.SendMessage(111111111111111);}
}