版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java程序设计,网络应用,西安交大 卫颜俊 2012年10月,主要内容,网络基础知识 Java网络程序设计体系 访问网络资源 有连接网络通讯 ,因特网基础知识,最早开始于1969年美国国防部的一个程序,目前已有三十多年的发展历程 将全世界许许多多联网的计算机组织起来,形成一个世界范围内的巨大的计算机网络,即所谓的地球村 还存在许多大小不同的子网,子网本身又构成自己的一套计算机网络系统,各个子网之间的连接需要一种称为网关的硬件或软件 。 ,网络协议,网络上的各计算机之间的一种通讯语言,不同的计算机之间必须遵守这种协约才能进行通讯 。 网络上所有设备(网络服务器、计算机及交换机、路由器和防火墙等
2、)之间通信规则的一种集合,它定义了通信时信息的格式以及含义,并保证了网络上各种设备能够相互交换信息。 其中,TCP/IP是一种目前因特网上使用最广泛的网络协议。 ,分层网络体系结构,多数计算机网络一般都采用分层体系结构,即每一层都建立在它的下一层之上,向它的上一层提供一定的服务,而把如何实现这一服务的细节对上一层加以屏蔽,一台设备上的一层与另一台设备上的同一层进行通信的规则就是这一层的协议。 TCP/IP协议包含应用层、传输层、网络层、数据链路层和物理层等五个层次。 如面向应用的协议:简单邮件传输协议(SMTP)、超文本传输协议(HTTP,Hypertext Transfer Protocol
3、)、文件传输协议(FTP)和域名系统(DNS)等。 传输层位于应用层之下,包括面向连接的传输控制协议TCP(Tranfer Control Protocol)和无连接的用户数据报协议UDP(User Datagram Protocol)。 网络层:IP ,几个网络概念,IP地址 子网掩码 域名 主机名 端口号 套接字 TCP是一种面向连接的保证可靠传输的协议 UDP是一种无连接的协议,每个数据报都是一个独立的信息单位 Web(或WWW)是因特网上的互联文档的全球集合,C/S的通讯流程, 服务器端处理各种客户机的请求,一般与客户端位于不同的机器; C/S的交互开始于客户端; 客户端请求服务器端的
4、一个对象或事务; 服务器端或者处理这一请求或者被拒绝;当请求被处理时,对象返还给客户端。 ,电话双方的通讯过程,Java网络程序设计体系,访问网络资源,要查找指定主机名对应的IP地址,可以使用 .InetAddress类的getByName()方法。 InetAddress类,表示互联网协议(IP)地址,使用的是32 位无符号数字。,【例-1】,题意: 给定因特网上的主机名,解析其IP地址。 算法简述: 使用InetAddress 类的getByName方法得到InetAddress 类的对象,然后使用getHostAddress方法取得IP地址。 ,URL,URL即统一资源定位符(Unifo
5、rm Resource Locator),互联网上主机网址的表示形式,是指向互联网“资源”的指针,格式如下: 协议名:资源名,其中,协议名有http、ftp、file和mailto等,资源名包括主机名、端口号、文件名或文件中的一个引用。 比如以下几个均为合法的URL: 70/Java/ mailto:/ .URL类,主要完成从互联网和WWW上读取资源的功能。 ,【例-2】,题意: 给定网站的网址,读取并显示其首页内容 。 算法简述: 首先构造URL类的对象 然后使用其openStream方法建立输入流 并通过InputStreamReader类将字节输入流转换
6、为带缓冲的字符输入流 最后使用字符输入流的readLine方法完成数据的读操作。 ,URLConnection,.URLConnection类为抽象类,代表应用程序和URL之间的通信链接,可以完成读取和写入此URL引用的资源,将数据输出到WWW上。,【例-3】,题意: 给定FTP服务器的网址,上载一个文件。 算法简述: 本程序是在上一个程序的基础上,使用URLConnection类进一步完成数据资源的上载和修改功能。 首先建立URL类的对象, 然后使用其openConnection方法建立URLConnection类的对象, URLConnection类提供了getOutputStream方法
7、建立输出流,还提供了getInputStream方法建立输入流,最后进行数据的读写处理。 ,有连接网络通讯,.ServerSocket类,此类实现服务器套接字并等待请求通过网络登陆。通过接收客户的请求来执行某些操作,然后向请求者返回应答结果。 .Socket类,此类实现客户端套接字并向服务器传送请求。,【例-4】,题意: 建立简易的网络聊天程序。 算法简述: 本程序分可视化界面设计、线程设计和Socket网络通讯功能设计三个方面。 , 可视化界面的设计 将窗体分为左右两个面板,左侧为服务器画面,放置一个JTextField组件,完成端口的修改,放置一个JTextArea组件,显示客户端传来的信
8、息,放置两个按钮,其中,“启动”按钮建立ServerSocket对象,并使用其accept监听客户端的连接,“停止”按钮关闭Socket连接; 右侧为客户端画面,放置三个JTextField组件,分别完成主机名和端口的修改,以及发送给服务器的信息输入,放置一个JTextArea组件,显示服务器传来的信息,放置两个按钮,其中,“连接”按钮建立Socket对象,并与服务器保持连接,“停止”按钮关闭Socket连接。 增加的事件监听包括:服务器的启动”和“停止”按钮事件,客户端的“连接”和“停止”按钮事件,客户端的信息输入组件的键盘事件,以及窗口关闭事件等。,建立了两个线程类 一个的作用是当服务器启
9、动后,其服务运行在一个线程中,不断等待客户Socket的连接和进行数据的收发工作; 一个的作用是当客户端启动后,也提供一个服务线程不断接收服务器收传来的信息。 , 在Socket网络通讯功能设计上,对于服务器端,核心代码如下: ServerSocket serverSocket = new ServerSocket(4700); /建立ServerSocket对象 socket = serverSocket.accept(); /等待客户连接 BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInpu
10、tStream(); /建立输入流对应客户的输出 PrintStream out = new PrintStream(socket.getOutputStream(); /建立输出流对应客户的输入 /. socket.close();,而对于客户端,核心代码如下: Socket socket = new Socket(localhost, 4700); /建立Socket对象 BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream(); /建立输入流对应服务器的输出 PrintStream out = new PrintStream(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 销售面试通关秘籍
- 新医改下的医患关系改善
- 1型糖尿病β细胞再生的细胞衰老延缓机制与策略-1
- 氧疗患者的心理支持与沟通
- 广西贵百河2025-2026学年高一上学期12月月考政治试题(解析版)
- 头发健康问题诊断
- 五经普贸易培训课件下载
- 好食脉孢菌发酵豆渣的特性、工艺及应用潜力探究
- 女性外生殖器整形手术的统计研究及大阴唇整形的现状
- 小学生校园安全课件下载
- 辽宁省沈阳市皇姑区2024-2025学年八年级上学期英语期末试卷
- 2026年度安全教育培训计划培训记录(1-12个月附每月内容模板)
- 广东省深圳市宝安区2024-2025学年八年级上学期1月期末考试数学试题
- 2023电气装置安装工程盘、柜及二次回路接线施工及验收规范
- 大量不保留灌肠
- 2025年江苏省安全员C2本考试题库+解析及答案
- 物业经理竞聘管理思路
- 临床营养管理制度汇编
- 购销合同电子模板下载(3篇)
- 防洪评价进度安排方案(3篇)
- 胃肠减压技术操作并发症
评论
0/150
提交评论