- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
内容abcxyz0000索引
伺服器程式時更能夠顯出其優勢 使用NIO設計伺服器程式可以讓主程式(main執行緒)處理多個客戶端的需求,而不需要為每個客戶端產生個別的執行緒 一個客戶端的服務包含兩個通道(Channels),一是等待客戶端連線的「連線通道」ServerSocketChannel,另一個則是專門處理資料接收與傳送的「傳輸通道」SocketChannel 9-4 NIO伺服器 「選擇器」Selector 選擇器可容納需要觀察的通道,如連線通道與傳輸通道 各個通道使用register()方法把自己「註冊」(或登記)在選擇器中 有任何已註冊的動作(SelectionKey)發生時,可由選擇器的selectedKey()方法得到一個已發生的動作集合 9-4 NIO伺服器 處理模式 使用ServerSocketChannel,一開始是傾聽並接受連線 待接收客戶端的連線之後,再轉換為資料傳輸的SocketChannel 9-4 NIO伺服器 處理步驟 建立ServerSocketChannel 註冊動作ACCEPT至選擇器selector 準備監視迴圈 檢查所有發生的動作鍵值 產生該連線的SocketChannel 利用資料傳輸通道送出資料 9-4 NIO伺服器 完整程式碼與解說 9-4 NIO伺服器 01 package com.ch09; 02 03 import java.io.IOException; 04 import .InetSocketAddress; 05 import .ServerSocket; 06 import java.nio.ByteBuffer; 07 import java.nio.channels.SelectionKey; 08 import java.nio.channels.Selector; 09 import java.nio.channels.ServerSocketChannel; 10 import java.nio.channels.SocketChannel; 11 import java.util.Iterator; 12 import java.util.Set; 13 14 public class NioSimpleServer { 15 public static void main(String[] args) throws IOException { 16 ServerSocketChannel serverChannel = 17 ServerSocketChannel.open(); 18 ServerSocket ss = serverChannel.socket(); 完整程式碼與解說 9-4 NIO伺服器 19 ss.bind(new InetSocketAddress(9950)); 20 serverChannel.con?gureBlocking(false); 21 Selector selector = Selector.open(); 22 serverChannel.register(selector, SelectionKey.OP_ACCEPT); 23 while (true) { 24 selector.select(); 25 Set keys = selector.selectedKeys(); 26 Iterator it = keys.iterator(); 27 while (it.hasNext()) { 28 SelectionKey key = (SelectionKey) it.next(); 29 it.remove(); 30 if (key.isAcceptable()) { 31 System.out.println(client connected); 32 ServerSocketChannel server = 33 (ServerSocketChannel) key.channel(); 34 SocketChannel client = server.accept(); 35 client.con?gureBlocking(false); 36 Selec
您可能关注的文档
最近下载
- 宾语从句讲义.docx VIP
- 机电一体化技术专业职业生涯规划书发展报告大一全国大学生职业规划大赛模板范文2025字.pdf VIP
- 2022大型跨流域水电集控中心设计方案.doc
- 天津七一二通信广播股份有限公司2018年年度股.PDF VIP
- F 我心爱的意中人 我爱恋的人 我所迷恋的人原版正谱子五线谱声乐钢琴伴奏谱乐谱曲谱弹唱谱高清正版.pdf VIP
- 国际货运代理课程标准.doc
- 降E正谱被禁止的音乐.pdf VIP
- 大学生应征入伍学费补偿申请表.doc VIP
- 智能养老社区养老产业发展模式创新研究报告.docx
- 人教版化学九年级上册第六单元《碳和碳的氧化物》大单元作业设计.pdf VIP
原创力文档


文档评论(0)