内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Netty學習教程之基礎使用篇-創(chuàng)新互聯(lián)

什么Netty?

創(chuàng)新互聯(lián)公司是少有的成都網(wǎng)站制作、做網(wǎng)站、營銷型企業(yè)網(wǎng)站、小程序開發(fā)、手機APP,開發(fā)、制作、設計、賣鏈接、推廣優(yōu)化一站式服務網(wǎng)絡公司,從2013年成立,堅持透明化,價格低,無套路經(jīng)營理念。讓網(wǎng)頁驚喜每一位訪客多年來深受用戶好評

Netty是由JBOSS提供的一個java開源框架。Netty提供異步的、事件驅動的網(wǎng)絡應用程序框架和工具,用以快速開發(fā)高性能、高可靠性的網(wǎng)絡服務器和客戶端程序。


也就是說,Netty 是一個基于NIO的客戶、服務器端編程框架,使用Netty 可以確保你快速和簡單的開發(fā)出一個網(wǎng)絡應用,例如實現(xiàn)了某種協(xié)議的客戶,服務端應用。Netty相當簡化和流線化了網(wǎng)絡應用的編程開發(fā)過程,例如,TCP和UDP的socket服務開發(fā)。


我們下面編寫四個類


      1.用于接收數(shù)據(jù)的服務器端Socket


      2.用于接收客戶端的消息,用于接收和反饋客戶端發(fā)出的消息類ServertHandler


      3.用于發(fā)送數(shù)據(jù)的服務器端Client


      4.用于發(fā)送數(shù)據(jù)和接收服務器端發(fā)出的數(shù)據(jù)處理類ClientHandler


Socket.java

import io.netty.bootstrap.ServerBootstrap; 
import io.netty.buffer.ByteBuf; 
import io.netty.buffer.Unpooled; 
import io.netty.channel.ChannelFuture; 
import io.netty.channel.ChannelInitializer; 
import io.netty.channel.ChannelOption; 
import io.netty.channel.EventLoopGroup; 
import io.netty.channel.nio.NioEventLoopGroup; 
import io.netty.channel.socket.SocketChannel; 
import io.netty.channel.socket.nio.NioServerSocketChannel; 
import io.netty.handler.codec.DelimiterBasedFrameDecoder; 
import io.netty.handler.codec.string.StringDecoder; 
 
public class Server { 
  
 public static void main(String[] args) throws InterruptedException { 
  //1.第一個線程組是用于接收Client端連接的 
  EventLoopGroup bossGroup = new NioEventLoopGroup(); 
  //2.第二個線程組是用于實際的業(yè)務處理的 
  EventLoopGroup workerGroup = new NioEventLoopGroup(); 
  ServerBootstrap b = new ServerBootstrap(); 
  b.group(bossGroup, workerGroup);//綁定兩個線程池 
  b.channel(NioServerSocketChannel.class);//指定NIO的模式,如果是客戶端就是NioSocketChannel 
  b.option(ChannelOption.SO_BACKLOG, 1024);//TCP的緩沖區(qū)設置 
  b.option(ChannelOption.SO_SNDBUF, 32*1024);//設置發(fā)送緩沖的大小 
  b.option(ChannelOption.SO_RCVBUF, 32*1024);//設置接收緩沖區(qū)大小 
  b.option(ChannelOption.SO_KEEPALIVE, true);//保持連續(xù) 
  b.childHandler(new ChannelInitializer<SocketChannel>() { 
   @Override 
   protected void initChannel(SocketChannel sc) throws Exception { 
    ByteBuf buf = Unpooled.copiedBuffer("$_".getBytes());//拆包粘包定義結束字符串(第一種解決方案) 
    sc.pipeline().addLast(new DelimiterBasedFrameDecoder(1024,buf));//在管道中加入結束字符串 
   // sc.pipeline().addLast(new FixedLengthFrameDecoder(200));第二種定長 
    sc.pipeline().addLast(new StringDecoder());//定義接收類型為字符串把ByteBuf轉成String 
    sc.pipeline().addLast(new ServertHandler());//在這里配置具體數(shù)據(jù)接收方法的處理 
   } 
  }); 
  ChannelFuture future = b.bind(8765).sync();//綁定端口 
  future.channel().closeFuture().sync();//等待關閉(程序阻塞在這里等待客戶端請求) 
  bossGroup.shutdownGracefully();//關閉線程 
  workerGroup.shutdownGracefully();//關閉線程 
 } 
} 

當前題目:Netty學習教程之基礎使用篇-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://www.rwnh.cn/article30/idgpo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、面包屑導航、品牌網(wǎng)站建設、網(wǎng)站營銷、網(wǎng)站排名、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設
乳山市| 齐河县| 福海县| 昭平县| 若尔盖县| 朝阳县| 介休市| 潞城市| 东乡| 茂名市| 宜君县| 阿城市| 呈贡县| 增城市| 井冈山市| 西盟| 青海省| 应城市| 曲周县| 昭通市| 东辽县| 武强县| 元阳县| 丰宁| 锦州市| 自治县| 桐乡市| 平乡县| 桂平市| 革吉县| 平原县| 凌源市| 和顺县| 额济纳旗| 巍山| 聂拉木县| 博兴县| 南岸区| 嵩明县| 绥化市| 吴忠市|