《11 网络编程.ppt》由会员分享,可在线阅读,更多相关《11 网络编程.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java程序设计第11章 Java中的网络编程目 录网络基础URL 类InetAddress 类Socket 通信网络基础qJava的快速发展得益于的快速发展得益于Internet和和Web的出现,的出现,Java语语言取得成功的领域之一就是网络。言取得成功的领域之一就是网络。q其他语言:数页代码其他语言:数页代码Java 语言:一条语句语言:一条语句包包两台计算机通过网络进行通信qIP地址地址标识计算机等网络设备的网络地址,由标识计算机等网络设备的网络地址,由32位,位,4个字节个字节组成,中间以小数点分隔。如:组成,中间以小数点分隔。如:192.168.1.35IP地址是一个逻辑地址,具有
2、全球唯一性。地址是一个逻辑地址,具有全球唯一性。q主机名主机名(hostname):按照域名进行分级管理。如:按照域名进行分级管理。如:,rj1-5AB网络网络192.168.0.118192.168.0.10协议协议协议协议端口端口端口端口网络基础q端口号端口号(port number):网络通信时同一机器上的不同进程的标识。网络通信时同一机器上的不同进程的标识。使用一个使用一个16位的数字来表示(位的数字来表示(065535)其中其中01023为系统保留的端口号。为系统保留的端口号。q服务类型服务类型(service)Internet服务服务端口号端口号ftp21telnet23DNS53
3、http80nntp119POP31101、网络基础qC/S结构的通信:结构的通信:服务类型是在TCP层上面的应用层的概念。OSI各层所使用的协议应用层应用层表示层表示层会话层会话层传输层传输层物理层物理层数据链路层数据链路层网络层网络层7 76 65 54 43 32 21 1OSI参考模型参考模型远程登录协议远程登录协议Telnet、文件传输协议文件传输协议FTP、超文本传输协议超文本传输协议HTTP、域名服务域名服务DNS、简单邮件传输协议简单邮件传输协议SMTP、邮局协议邮局协议POP3等。等。网际协议网际协议IP、Internet互联网控制报文协议互联网控制报文协议ICMP、Inte
4、rnet组管理协议组管理协议IGMP。传输控制协议传输控制协议TCP用户数据报协议用户数据报协议UDP面向连接的可靠的传输协议面向连接的可靠的传输协议 无连接的不可靠的传输协议无连接的不可靠的传输协议网络基础qJava所提供的网络功能按所提供的网络功能按层次层次及及使用方法使用方法分为三大类分为三大类:1.URL确定数据在网络中的位置,直接读入网络中的数据,或者将确定数据在网络中的位置,直接读入网络中的数据,或者将本地数据传送到网络的另一端。本地数据传送到网络的另一端。2.SocketSocket是指两个程序在网络上的通信连接。是指两个程序在网络上的通信连接。(TCP)3.DatagramDa
5、tagram方式是三种网络功能中方式是三种网络功能中最低级最低级的一种,它是一种的一种,它是一种面面向非连接的向非连接的、以数据报方式工作的以数据报方式工作的通信,适用于网络状况不通信,适用于网络状况不可靠环境下的数据传输和访问。可靠环境下的数据传输和访问。(UDP)目 录网络基础URL 类InetAddress 类Socket 通信2、URLqURL(Uniform Resource Locator)是统一资源定位器的简称,是统一资源定位器的简称,它表示它表示Internet上某一资源的地址。上某一资源的地址。q最常见的网络资源有最常见的网络资源有WWW,FTP站点。站点。q格式格式prot
6、ocol:/resourceNamehttp:/ 协议名协议名:/机器名文件名机器名文件名http:/:80/Gamelan/network.html#BOTTOM 协议名协议名:/机器名端口号文件名内部引用机器名端口号文件名内部引用指明获取资源所使指明获取资源所使用的传输协议,如用的传输协议,如http、ftp、file等。等。资源的完整地址,包括主资源的完整地址,包括主机名、端口号、文件名或机名、端口号、文件名或文件内部的一个引用。文件内部的一个引用。2、URL类qURL类类q读取读取URL中的资源中的资源q显示显示URL资源中的资源中的HTML文件文件q处理超链接处理超链接(1)URL类
7、q构造方法构造方法:public URL(String spec)public URL(Stringprotocol,String host,intport,Stringfile)throws MalformedURLExceptionqInputStream openStream()try url=new URL(http:/);catch(MalformedURLException e)System.out.println(Bad URL:+url);InputStream in=url.openStream();(2)读取URL中的资源q例子例子1,读取服务器上的资源。,读取服务器上的资
8、源。网页的运行效果?目 录网络基础URL 类InetAddress 类Socket 通信3、InetAddress类qInternet上的主机有两种方式表示地址:上的主机有两种方式表示地址:(1)域名)域名 如如:(2)IP 地址地址 如如:202.194.48.62q该类对象含有一个该类对象含有一个Internet主机地址的域名和主机地址的域名和IP地址:地址: s);/s是域名或是域名或IP地址地址实例方法实例方法public String getHostName()获取域名。获取域名。public String getHostAddress()获取获取IP地址。地址。2获取本地机的地址获
9、取本地机的地址静态方法静态方法InetAddress.getLocalHost();/包含域名和包含域名和IP地址地址q例子例子11-4import .*;public class DomainName public static void main(String args)try InetAddress address_1=InetAddress.getByName();System.out.println(address_1.toString();InetAddress address_2=InetAddress.getByName();System.out.println(address
10、_2.toString();InetAddress myIP=InetAddress.getLocalHost();System.out.println(myIP.toString();catch(UnknownHostException e)System.out.println(error!);4、Socket通信q套接字套接字q服务器端服务器端Socketq客户端客户端Socketq编程步骤编程步骤q多线程处理多线程处理套接字qSocket是是网网络络上上运运行行的的程程序序之之间间双双向向通通信信链链路路的的最最后后终结点。终结点。q端口号与端口号与IP地址的组合得出一个网络套接字。地址
11、的组合得出一个网络套接字。q套套接接字字连连接接:客客户户端端的的套套接接字字对对象象和和服服务务器器端端的的套套接接字字对象通过对象通过输入输入、输出输出流连接在一起。流连接在一起。服务器服务器端端SocketSocket输入流输入流输出流输出流 连接连接 连接连接客户客户端端SocketSocket输出流输出流输入流输入流通信过程Socket.close()OutputStreamInputStreamServerSocket(port#)ServerSocket.accept()服务器服务器Socket.close()OutputStreamInputStreamSocket(host,
12、port#)(attempt to connect)客户机客户机注册服务等待连接服务端socket的建立qServerSocket对对象象负负责责等等待待客客户户端端请请求求建建立立套套接接字字连连接接,类似邮局某个窗口中的业务员。类似邮局某个窗口中的业务员。q服务器必须事先建立一个服务器必须事先建立一个ServerSocket对象。对象。q构造方法:构造方法:ServerSocket(int port)try ServerSocket serverSocket=new ServerSocket(1880);Socket ss=serverSocket.accept();System.out.
13、println(“ok”)catch(IOException e)使服务器处于阻塞状态,等待用户请求客户端socket的创建qSocket类的构造方法:类的构造方法:Socket(InetAddress address,int port);Socket(String host,int port);try Socket socket;clinetSocket=new Socket(“http:/192.168.0.78”,1880);catch(IOException e)getInetAddress()方法可以获取一个InetAddess对象,该对象含有客户端的IP地址和域名。创建服务器创建服
14、务器(端口号端口号)服务器等待服务器等待网络连接网络连接建立建立socketsocket流流读客户端信息读客户端信息向用户发出一个字符串向用户发出一个字符串创建创建SocketSocket实例实例建立建立socketsocket流流读读socketsocket流流(接收并显示接收并显示)关闭流关闭流waitingwaiting192.168.0.78192.168.0.78 1880 188018801880login:login:connetctingconnetctingjavajava提示用户登录成功提示用户登录成功读读socketsocket流流User:javaUser:javaLo
15、gin successfulLogin successful送用户名给送用户名给服务器服务器关闭流关闭流编程步骤q使用使用socket方式进行网络通信的四个主要步骤方式进行网络通信的四个主要步骤:1.打开打开socket接口。接口。2.将特定的输入输出流连接到打开的将特定的输入输出流连接到打开的socket。3.按实际需要对按实际需要对socket进行读写操作。进行读写操作。4.关闭关闭socket。q例子例子5:Client.java Server.java(6)使用多线程处理套接字连接q服服务务器器端端收收到到一一个个客客户户的的套套接接字字后后,就就应应该该启启动动一一个专门为该客户服务的线程。个专门为该客户服务的线程。q 例子例子6 Serverclient1client2serverthreadserverthread小 结网络基础URL 类InetAddress 类Socket 通信通信
限制150内