当前位置: 首页 > news >正文

塑胶原料 东莞网站建设中国建设银行官网站住房公积金

塑胶原料 东莞网站建设,中国建设银行官网站住房公积金,通化公司做网站,国内 wordpress主题1. 引入DotNetty包 我用的开发工具是VS2022,不同工具引入可能会有差异 工具——>NuGet包管理器——>管理解决方案的NuGet程序包 搜索DotNetty 2.新建EchoClientHandler.cs类 用于接收服务器返回数据 public class EchoClientHandler : SimpleChannelIn…

1. 引入DotNetty包

我用的开发工具是VS2022,不同工具引入可能会有差异

工具——>NuGet包管理器——>管理解决方案的NuGet程序包
在这里插入图片描述
搜索DotNetty
在这里插入图片描述

2.新建EchoClientHandler.cs类

用于接收服务器返回数据

public class EchoClientHandler : SimpleChannelInboundHandler<IByteBuffer>
{/// <summary>/// Read0是DotNetty特有的对于Read方法的封装/// 封装实现了:/// 1. 返回的message的泛型实现/// 2. 丢弃非该指定泛型的信息/// </summary>/// <param name="ctx"></param>/// <param name="msg"></param>protected 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).Channel<TcpSocketChannel>().Option(ChannelOption.TcpNodelay, true).Handler(new ActionChannelInitializer<ISocketChannel>(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");}
}
http://www.yayakq.cn/news/371936/

相关文章:

  • 南京网站设计收费标准徐州专业三合一网站开发
  • 温州公司做网站营销型门户网站建设方案
  • 怎么判断网站开发语言微信朋友圈推广软文
  • 长沙哪个公司做网站好寮步镇做网站
  • 设计图片网站哪个好数字营销策划公司
  • html5的网站有哪些重庆集团网站建设
  • 建站平台在线提交表格东道品牌创意集团
  • wordpress网站结构wordpress去掉尾巴
  • 做微信平台网站万能造假截图生成器
  • 张家口外贸网站建设扁平化网站 psd
  • 网站建设程序开发做网站哪家公司比较好而且不贵
  • 0基础学做网站wordpress资源占用
  • 郑州营销网站建设设计京东pc网站用什么做的
  • 公司软件网站开发怎么入账网站建设自建与租用区别
  • 高端网站制作上海金蝶软件多少钱一套
  • 女网友叫我一起做优惠券网站网络技术培训班
  • 企业 php网站建设263企业邮箱怎么注册
  • ps个人网站设计公司网站简介怎么做
  • 网站规划总结品牌注册公司
  • 网页设计作业个人网站门户网站有哪些
  • 专门做任务的网站6建设一个蛋糕网站的背景与目的
  • 内江网站建设科技小手工
  • 想自己做网站推广私人可注册网站吗
  • 怎么开通个人网站中国平面设计在线
  • 网站开发用了什么平台查网站备案信息
  • 免费建设淘客网站千秋网络是家西安做网站的公司
  • 欣宝儿在什么网站做直播餐饮装修公司
  • 网站建设公司网站长沙景点推荐
  • 最权威的做网站的公司哪家好ui设计和平面设计哪个难
  • WordPress全站广告久久租房网