运用JavaNIO提高做事端按次的性能

运用JavaNIO提高做事端按次的性能

ID:46692829

大小:70.50 KB

页数:8页

时间:2019-11-26

运用JavaNIO提高做事端按次的性能_第1页
运用JavaNIO提高做事端按次的性能_第2页
运用JavaNIO提高做事端按次的性能_第3页
运用JavaNIO提高做事端按次的性能_第4页
运用JavaNIO提高做事端按次的性能_第5页
资源描述:

《运用JavaNIO提高做事端按次的性能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、运用JavaNIO提高做事端按次的性能星散具体的JovaSocket编程,探求使用N10前进办事端步伐的坚守的问题。JavaNIO增长了新的SocketChannel>ServerSocketChannel等类來供给対成立高违拗的效力端举措的赞成。SocketChannel、ServerSocketChannel能够在非壅塞的形式下工作,它们但凡selectable的类。在树立服务器或者两端件时,引荐应用JavaN10o在传统的Internet编程屮,我们一样平常使用一个专门使用线程(Thread)来措置一个Socket邻接,颠末运用

2、NI0,—个可以或许很少几个Socket线程便可以处理不计其数个勾当的Socket邻接。一样平常悄况下,通过ServerSocketChannel.open()获得一个ServerSocketChannel的实例,经由过程SocketChannel.open笼统ServerSocketChannel.accept()失掉一个SocketChannel实例。要使ServerSocketChannel笼统SocketChannel在卄•缠闭的内容下垄断,可以调用sorverSockctChannel.configuroBlocking(f

3、alse);或者SocketChannel.configureBlocking(false);语句来抵达目的。一般状况下,效劳端可使用非壅塞的ServerSocketChannel,多么,做事真个措沌便可以更易地同时处置惩罚多个socket线程。下面我们来看一个赏析例子,这个例子运用了ServerSocketChannelSocketChannel斥地了一个非壅塞的、能处置多线程的Echo效能端措施,赐教例12-14o【递次源代码】1//==================ProgramDiscription=============

4、======2//程序名称:示例12-14:SocketChannelDemo.java3//程序目的:学习JavaNIO#SocketChannel4//========================================================565importjava.nio.ByteBuffer;6importjava.nio.channels.ServerSocketChannel;7importjava.nio.channels.SocketChannel;8importjava.nio.channel

5、s.Selector;1importjava.nio.channels.SelectionKey;2importjava.nio.channels.SelectableChannel;133importjava.net.Socket;4importjava.net.ServerSocket;5importjava.net.InetSocketAddress;6importjava.uti1.Iterator;187publicclassSocketChannelDemo208{9publicstaticintPORT.NUMBER=2

6、3;//监听端口10ServerSocketChannelserverChannel;11ServerSocketserverSocket;12Selectorselector;13privateByteBufferbuffer=ByteBuffer.allocateDirect(1024);2714publicstaticvoidmain(String[]args)15throwsException16{17SocketChannelDemoserver=newSocketChannelDemo();18scrvcr.init(ar

7、gs);19server.startWork();34}353637publicvoidinit(String[]argv)throwsException38{39intport=PORT_NUMBER;4040if(argv.length>0){41port=Integer.parselnt(argv[0]);43}4445System.out.println("Listeningonport"+port);4645//分配-•个ServerSocketChannel45serverChannel=ServerSocketChann

8、el.open();46//从ServerSocketChannel里获得一个对应的Socket47serverSocket=serverChannel.socket();48//生成一个Selector49select

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。