版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第17单元
网络编程主讲人:叶利华Java程序设计实践教程实验
Java网络编程目录2实验目标4拓展训练3实验内容1
知识要点网络编程基础计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来的,实现资源共享和数据传输的系统。网络编程就是编写程序使互联网的两个(或多个)设备(如计算机)之间进行数据传输。网络程序分类从软件结构来看,一般可以将网络应用程序分为:Client/Server(C/S)结构和Browser/Server(B/S)结构。从网络通信协议来分,可以分为面向连接的传输控制协议(TransmissionControlProtocol,TCP)和面向无连接的用户数据报协议(UserDatagramProtocol,UDP)。TCP和UDP传输各有优势,其区别如下:1)TCP基于连接,UDP是无连接的;2)对系统资源的要求,TCP较多,UDP较少;3)TCP是流模式,而UDP是数据报模式;4)TCP保证数据正确性,而UDP可能丢包;5)TCP保证数据顺序,而UDP不保证。Socket网络编程Socket是网络驱动层提供给应用程序编程接口和一种机制。Socket编程主要涉及到客户端和服务器端两个方面,首先是在服务器端创建一个服务器套接字(ServerSocket),并把它附加到一个端口上,服务器从这个端口监听连接。客户端请求与服务器进行连接的时候,根据服务器的域名或者IP地址,加上端口号,打开一个套接字。基于Socket的通信模型如图所示。Java网络编程常用类Java中为方便网络编程,对常规网络编程中需要使用的相关功能进行良好的封装,提供了一些相关的封装类,极大降低了网络编程的难度。1)InetAddress类2)URL和URLConnection类3)Socket和ServerSocket类4)DatagramSocket类知识目标:了解计算机网络通信原理相关概念;了解网络编程框架的使用方法;理解服务器架构模型。能力目标:学会基于Java网络类URL的网络数据访问、Socket服务器和客户端、DatagramSocket数据包编程。素质目标:建立互联协助思维,养成协同互助工作习惯。231验证性实验--URL和URLConnection应用测试下列采用URL和URLConnection类客户端访问http资源代码。点拨:saveToFile方法的图像连接可以修改为任何一个网络图片URL地址。publicstaticvoidmain(String[]args){DownImagedw=newDownImage(); dw.saveToFile("/v2-4ae8b1376e61b774b359e917dc843e0c_r.jpg");}验证性实验--Netty框架应用采用Netty框架实现了一个聊天室的功能,包括服务器端和和客户端。测试下列代码,并分析框架实现多客户端网络用的优势。点拨:运行程序需要netty-all-4.1.24.Final.jar以上版本的jar包,并添加到工程中。设计性实验--简单客户端和服务端通信程序采用Socket和ServerSocket编写一个简单一对一客户端和服务端程序。客户端Client类连接到客户端后,客户端输入一串字符串,服务器端收到后直接返回该字符串,当客户端输入!q后,客户端退出,并关闭连接。服务器端收到!q后,也一并关闭连。左图和右图分别为服务器端程序和客户端程序运行的结果。点拨:(1)服务器端运行后,直接在accept处等待客户端连接;(2)将输入输出流用字符缓冲流进行包装
InputStreamin=socket.getInputStream(); OutputStreamout=socket.getOutputStream(); InputStreamReaderisr=newInputStreamReader(in); BufferedReaderreader=newBufferedReader(isr); OutputStreamWriterosw=newOutputStreamWriter(out); BufferedWriterwriter=newBufferedWriter(osw);设计性实验--多线程服务端程序基于第1题的编写成果,修改为可以同时连接多个客户端,每个客户端都有一个独立的线程进行交互。当客户端输入一串字符串,服务器端线程直接返回字符串,当客户端输入!q后,客户端退出,并关闭连接。服务器端线程收到!q后,也一并关闭连接,并结束该线程。点拨:(1)服务器端运行后,直接在accept处等待客户端连接,当有客户端连接后,创建一个线程服务该连接,然后重新等待accept;(2)将输入输出流用字符缓冲流进行包装。设计性实验--多客户端的聊天群基于TCP服务器编写一个多客户端的聊天群,服务器端接收一个客户端一串文本,并将该文本分别发送给其它客户端。当客户端输入!q后,通知服务器后,该客户端退出,并关闭连接。点拨:(1)创建ClientInfo类存放客户端的InetAddress和端口信息;(2)创建HashMap对象,存放客户端和Socket信息,每个连接有唯一的信息;publicstaticConcurrentHashMap<ClientInfo,Socket>map=newConcurrentHashMap<>();(3)当服务器端线程接收到对应客户端发送的字符串后,假如不是!q,则将字符串通过遍历Map对象发送给其他客户端,其中map的值为Socket。设计性实验--Udp服务聊天群基于Udp服务器编写一个多客户端的聊天群,服务器端接收一个客户端一串文本,并将该文本分别发送给其它客户端。当客户端输入!q后,通知服务器后,该客户端退出。点拨:(1)将InetAddress和port作为客户端的唯一标识,直接生成InetAddress+":"+port字符串,并存放到ArrayList<String>集合对象中;(2)服务器收到客户端的字符串信息后,直接遍历ArrayList的客户端信息,分别转发收到的信息。思考面向连接和面向无连接通信方式在网络应用中的选择。测试多种服务器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年剧本杀运营公司绿色运营推广管理制度
- 2025年生态湿地公园建设可行性分析:技术创新与生态湿地修复
- 农业病虫害防控智能化趋势:2025年监测预警系统可行性报告
- 2026年生物科技行业创新报告及基因编辑技术临床应用
- 2025年跨境电商独立站品牌忠诚度培养报告
- 2025年新能源汽车五年市场报告
- 生态养殖循环产业链建设项目2025年技术创新与农业产业链优化可行性研究
- 冷链物流配送路径优化系统开发可行性研究报告-2025年行业挑战与对策
- 介休教师面试题目及答案
- 前列腺相关问题解答与护理
- 临床科室基本医疗保险服务质量考核评分标准
- 台州风土人情(共15张PPT)
- CodeSoft 6.0 详细使用手册
- 招投标与采购管理-课件
- 教学查房-子宫内膜息肉
- 关于婚内协议书范本
- 汉服文化介绍(精选)课件
- 妇产科学(第9版)第三章 女性生殖系统生理
- GB/T 17626.4-1998电磁兼容试验和测量技术电快速瞬变脉冲群抗扰度试验
- 深圳大学图书城管理中心大楼项目标底及投标报价测算分析报告4200字
- 新生儿家庭访视课件
评论
0/150
提交评论