第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

從零開始學(xué)netty——開啟客戶端

標(biāo)簽:
Java

从零开始学netty——第一个netty程序
从零开始学netty——认识decoder

通过上面两篇文章,大家基本了解了一个netty的样子,为了专注介绍,特意省去了客户端的编写,使用telnet来当做客户端,并且传输的都是文字信息。文字信息局限比较大,所以开始了解客户端的编写。

初见客户端
    public void bind(String ip, int port) {
        EventLoopGroup worker = new NioEventLoopGroup();
        try {
            Bootstrap b = new Bootstrap();
            b.group(worker).channel(NioSocketChannel.class).handler(new ChannelInitializer<Channel>() {

                @Override
                protected void initChannel(Channel ch) throws Exception {
                    ch.pipeline().addLast(new StringEncoder());
                }
            });
            ChannelFuture connect = b.connect(ip, port);
            connect.sync();
            connect.channel().writeAndFlush("hello");
            connect.channel().close();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            worker.shutdownGracefully();
        }

    }

上面的代码就是客户端代码,乍一看还都挺熟悉的,和服务端的代码很相似。这里用到了StringEncoder,如果看了上篇的decoder,就很容易猜到了这次的encoder,decoder是在处理byte数组到对象的过程,encoder就是处理对象到byte数组的过程。StringEncoder也是netty提供好的类,专门用来处理字符串。

connect.sync();

上面的这个代码需要注意,connect也是一个异步的操作,下面想发消息,起码也得等到连接创建成功的,很多例子一般不写这句话,是因为他的逻辑,已经能满足connect成功了,一般逻辑还是要保证先后的。

客户端和服务器端的差异

框架使用代码本身没有什么可以讲的,我们就做一个对比,方便代码的记忆。

相同点
  1. 都是EventLoopGroup和NioEventLoopGroup。
  2. 都有group,channel,ChannelInitializer方法
不同点
- 客户端 服务器端
EventLoopGroup个数 1 2
工厂类 NioSocketChannel NioServerSocketChannel
启动类 Bootstrap ServerBootstrap
绑定方法 connect bind
记忆方法

毕竟是框架代码,常用的话,必须是可以直接写出来的,而不是复制粘贴。 我的方法是只去记忆服务端代码,你只要能写出来,那么客户端根据不同点编写。明显大家发现,启动类和工厂类的区别就是有server和没有server的区别。而且客户端肯定是要做connect操作的,服务器端肯定是要做bind操作的。加上这样的常识。基本可以很快就写出一个客户端代码。

點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
JAVA開發(fā)工程師
手記
粉絲
1.6萬
獲贊與收藏
380

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消