- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
成绩等级:
成绩等级:
实 验 报 告
( 实验二: 非阻塞HTTP服务器 )
课程名称:
网络课程设计II
姓 名:
学 院:
专 业:
年 级:
大三年级
学 号:
指导教师:
职 称:
2016 年 11 月 15 日
一、实验目的和要求
理解进程和线程的概念;
1.掌握使用java.nio包中的类创建非阻塞模式的服务器的方法,并能给出实现代码;
2.掌握HTTP协议的处理原理和代码实现过程。
实验内容
1. 分析说明:
(1)分析课本5.2节创建的非阻塞的HTTP服务器中主要包含了哪些主要的类?这些类的功能是什么?
HttpServer:服务器主程序,负责启动服务器;
AcceptHandler:负责接收客户端连接;
ReuqestHandler:负责接收客户端的HTTP请求,解析,生成HTTP响应,再返回给客户端;
Request:抽象化HTTP请求;
Response:抽象化HTTP响应;
Content:表示HTTP响应的正文;
(2)分析课本例5-2,并逐行进行注释,说明其意义。
public class HttpServer {
private Selector selector = null; //声明一个Selector成员变量
private ServerSocketChannel serverSocketChannel = null; //声明一个ServerSocketChannel成员变量
private int port = 8062; //设置端口号为8062
private Charset charset = Charset.forName(UTF-8); //设置字符集为UTF-8
public HttpServer() throws IOException{ //HttpServer类唯一构造器
selector = Selector.open();//注册一个selector对象
serverSocketChannel = ServerSocketChannel.open();//创建一个serverSocketChannel对象
serverSocketChannel.socket().setReuseAddress(true);//设置为可以顺利在重启后绑定端口
serverSocketChannel.configureBlocking(false);//设置为非阻塞模式
serverSocketChannel.socket().bind(new InetSocketAddress(port));//把服务器与一个本地端口进行绑定
System.out.println(server is running!);
}
public void service() throws IOException{
//注册连接就绪事件
serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT,new AcceptHandler());
//死循环保持监听
for(;;){
int n = selector.select();//取得监听到的事件的数量
if(n==0) continue; //若无事件发生,则进入下一次循环
Set readyKeys = selector.selectedKeys(); //将事件存入Set集合中
Iterator it = readyKeys.iterator(); //获取Set集合的迭代器
while(it.hasNext()){
SelectionKey key = null;
try{
key = (SelectionKey) it.next(); //使用迭代器将事件存入句柄对象
it.remove(); //将取出的对象从集合中移除
final Handler handler = (Handler) key.attachment(); //将与key关联的附件传给handler
您可能关注的文档
- 多项选择题的解题技巧.doc
- 夫妻共同债务的清偿.docx
- 夫妻和谐共处之道.doc
- 夹娃娃机攻略.doc
- 夫妻之间的爆笑对话,这样的两口子真有爱.doc
- 奉献十二五,我为大中型油气田做贡献.doc
- 奉献爱心,点燃希望.doc
- 奋斗stm32开发板v3.1原理图.docx
- 好一幅诸暨市新农村画卷 斯如婷.doc
- 奋斗的记叙文作文7篇.doc
- 2025至2030全球及中国订单管理软件行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030国内液晶显示屏行业市场发展分析及竞争策略与投资发展报告.docx
- 2025至2030港口设备市场前景分析及细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030量子加密通信行业发展现状及投资前景战略报告.docx
- 2025至2030中国音乐合成器行业运营态势与投资前景调查研究报告.docx
- 2025至2030中国液压行业市场发展现状及竞争格局与投资机会报告.docx
- 2025至2030中国异戊橡胶行业运营态势与投资前景调查研究报告.docx
- 2025至2030帕西肽行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030全球及中国超收敛集成系统行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030尖齿铣刀行业市场占有率及有效策略与实施路径评估报告.docx
最近下载
- JJF(鲁) 194-2024 专用砝码地方校准规范.docx VIP
- 上海市虹口区2024-2025学年六年级数学第一学期期末联考试题含解析.doc VIP
- sop知识讲解 _原创精品文档.pdf VIP
- 《老年人能力评估》精品课件——项目六 老年人感知觉与社会参与能力评估.pdf VIP
- JJF(京) 3020-2022 溴甲烷气体检测仪校准规范.docx VIP
- 信息隐藏技术课件 第三章 图像信息隐藏与水印.pptx VIP
- KorgKorg wavestate合成器入门指南.pdf
- Devereux幼儿评估量表第二版DECA-P2.docx VIP
- 2025年度最后一次行政班子会议,校长讲话:大局观,效率观,质量关.docx VIP
- JJF(吉) 72-2014 油气回收检测仪校准规范.docx VIP
原创力文档


文档评论(0)