设为首页  
联系我们  
加入收藏  
网页制作 冲浪宝典 图形图像 操作系统 软件教学 编程开发 认证考试 安全技术 站长专区 文学驿站 娱乐天地 游戏天地 办公软件
文章搜索
您的位置: 首页 >> 文章首页 >> 编程开发 >> Java >> New I/0 Functionality for JavaTM 2 Standard Edition 1.4
精品推荐
Java点击TOP10
·java笔试题
·《Thinking in Java》读书笔记
·JSP的mysql_jdbc驱动程序
·异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection
·Java Coder 常用软件下载地址
·org.apache.commons.dbcp.SQLNestedException解决办法
·Java图形界面开发:SWT全接触
·如何使用Java POI生成Excel表文件 !
·功能强大的在线网页编辑器
·一些非常不错的Struts 例子下载
编程开发点击TOP10
·ASP.NET 程序中常用的三十三种代码
·利用ASP.NET构建网上考试系统
·C#版的网站新闻发布系统
·(转)23种设计模式汇集
·设计ASP.NET新闻管理系统
·深山红叶袖珍PE工具箱V16正式版
·我的.NET书架 (入门篇)
·java笔试题
·C++经典电子书下载
·.NET:是什么?将走向哪里?
精选专题

New I/0 Functionality for JavaTM 2 Standard Edition 1.4

作者: 来源:网络文章 时间:2005-12-16 22:39:39

New I/0 Functionality for JavaTM 2 Standard Edition 1.4(10) Once something interesting happens, you have to figure out what happened and respond accordingly. For the channel registered here with the selector, you eXPressed interest in both the OP_CONNECT and OP_READ operations, so you know it can only be one of those events. So, what you do is get the Set of ready objects through the selectedKeys method, and iterate. The element in the Set is a SelectionKey, and you can check if it isConnectable or isReadable for the two states of interest.

Here's the basic framework of the loop so far:

while (selector.select(500) > 0) {// Get set of ready objectsSet readyKeys = selector.selectedKeys();Iterator readyItor = readyKeys.iterator();// Walk through setwhile (readyItor.hasNext()) { // Get key from set SelectionKey key = (SelectionKey)readyItor.next(); // Remove current entry readyItor.remove(); // Get channel SocketChannel keyChannel = (SocketChannel)key.channel(); if (key.isConnectable()) { } else if (key.isReadable()) { }}}

The remove method call requires a little eXPlanation. The ready set of channels can change while you are processing them. So, you should remove the one you are processing when you process it. There's also a timeout setup here for the select call so it doesn't wait forever if there is nothing to do. There's also a call to get the channel from the key in there. You'll need that for each operation.

For the sample program here you're doing the equivalent of reading from an HTTP connection, so upon connection you need to send the initial HTTP request. Basically, once you know the connection is made, you send a GET request for the root of the site. When the selector reports that the channel is connectable, it may not have finished connecting yet. So, you should always check if the connection is pending through isConnectionPending and call finishConnect if it is. Once connected, you can write to the channel, but must use a ByteBuffer, not the more familiar I/O streams.

1.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(1)
2.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(2)
3.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(3)
4.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(4)
5.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(5)
6.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(6)
7.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(7)
8.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(8)
9.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(9)
10.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(10)
11.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(11)
12.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(12)
13.New I/0 Functionality for JavaTM 2 Standard Edition 1.4(13)
共13页 9 7 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [138 :>

New I/0 Functionality for JavaTM 2 Standard Edition 1.4 相关文章:
New I/0 Functionality for JavaTM 2 Standard Edition 1.4 相关软件:
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
转载请注明来源:http://www.xgdown.com