接上篇,九份小火车的驾驶室
终点站,熟悉吗?《那些年我们追过的女孩》场景之一
到了九份,依山而建,山下远处就是大海
像不像千与千寻里的,宫崎骏的千与千寻就是在这里完成构思
汤婆婆的屋
最后来张小吃店的图,好多小吃,人很多,很温馨。
微信公众号
王皓的GitHub:https://github.com/TenaciousDWang
今天来实现Netty客户端登陆功能,服务端收到后返回响应,客户端收到服务端响应后打印到控制台,具体流程图如下。
之前我们已经创建了一个客户端和一个服务端,根据上面的登陆逻辑流程先开始实现客户端的发送登录请求的逻辑,我们只需要编写一个登陆逻辑处理器,绑定到channel的逻辑处理链上即可。接下来我们来实现它。
首先来改造一下编码过程的方法为ByteBuf encode(ByteBuf byteBuf,Packet packet),并将PacketCodeC写成单例,不再手动创建ByteBuf,而是从ChannelHandlerContext中获取。
然后创建逻辑处理器。
连接成功时会调用channelActive方法,我们先创建一个登陆对象,设置数据后,进行编码返回ByteBuf后,为连接写入数据发送。最后我们给客户端添加刚才创建的处理器。
接下来我们来创建服务端逻辑处理器,服务端的handler,服务端使用channelRead()方法读取数据,创建登陆响应指令数据包。根据校验用户数据情况填充不同响应数据,写入响应,同样也将这个逻辑处理器给服务端绑定上。
最后客户端的Handler需要添加channelRead()方法读取服务端返回的响应数据。
最后启动服务端与客户端,即可在控制台看到结果~