《20、网络编程.ppt》由会员分享,可在线阅读,更多相关《20、网络编程.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、中关村国际软件人才教育联盟中关村国际软件人才教育联盟第十九讲第十九讲网络编程网络编程 中关村国际软件人才教育联盟目标目标n计算机网络基础计算机网络基础 nTCP/IP协议协议 nIP地址及网地址及网络络掩掩码码 n使用使用包中的包中的类实现类实现网网络络通信通信URLURL类类及其用法及其用法基于基于TCPTCP协议协议的的SocketSocket通信通信基于基于UDPUDP协议的协议的SocketSocket通信通信中关村国际软件人才教育联盟计算机网络基础计算机网络基础 n n什么是计算机网络什么是计算机网络什么是计算机网络什么是计算机网络把把把把分分分分布布布布在在在在不不不不同同同同地地
2、地地理理理理区区区区域域域域的的的的计计计计算算算算机机机机与与与与专专专专门门门门的的的的外外外外部部部部设设设设备备备备用用用用通通通通信信信信线线线线路路路路互互互互连连连连成成成成一一一一个个个个规规规规模模模模大大大大、功功功功能能能能强强强强的的的的网网网网络络络络系系系系统统统统,从从从从而而而而使使使使众众众众多多多多的的的的计计计计算算算算机机机机可可可可以以以以方方方方便便便便地地地地互互互互相相相相传传传传递递递递信息,共享硬件、软件、数据信息等资源。信息,共享硬件、软件、数据信息等资源。信息,共享硬件、软件、数据信息等资源。信息,共享硬件、软件、数据信息等资源。n n计
3、算机网络的主要功能计算机网络的主要功能计算机网络的主要功能计算机网络的主要功能资源共享资源共享资源共享资源共享 信息传输与集中处理信息传输与集中处理信息传输与集中处理信息传输与集中处理 均衡负荷与分布处理均衡负荷与分布处理均衡负荷与分布处理均衡负荷与分布处理 综合信息服务综合信息服务综合信息服务综合信息服务(www/www/综合业务数字网络综合业务数字网络综合业务数字网络综合业务数字网络 ISDN)ISDN)中关村国际软件人才教育联盟计算机网络分类计算机网络分类n n按规模大小和延伸范围划分:按规模大小和延伸范围划分:按规模大小和延伸范围划分:按规模大小和延伸范围划分:局域网局域网局域网局域网
4、(LAN-localareanetworkLAN-localareanetwork)城城城城 域域域域 网网网网(MAN-MAN-metropolitanmetropolitanareaareanetworknetwork)广域网广域网广域网广域网(WANwideareanetworkWANwideareanetwork)n n按照网络的拓扑结构划分:按照网络的拓扑结构划分:按照网络的拓扑结构划分:按照网络的拓扑结构划分:环形网环形网环形网环形网、星形网星形网星形网星形网、总线型网总线型网总线型网总线型网等等等等n n按照通信传输的介质来划分:按照通信传输的介质来划分:按照通信传输的介质来划分
5、:按照通信传输的介质来划分:双绞线网双绞线网双绞线网双绞线网、同轴电缆网同轴电缆网同轴电缆网同轴电缆网、光纤网光纤网光纤网光纤网和和和和卫星网卫星网卫星网卫星网等等等等 n n按照信号频带占用方式划分:按照信号频带占用方式划分:按照信号频带占用方式划分:按照信号频带占用方式划分:基带网基带网基带网基带网和和和和宽带网宽带网宽带网宽带网 中关村国际软件人才教育联盟局域网的几种工作模式局域网的几种工作模式 n n专用服务器结构专用服务器结构专用服务器结构专用服务器结构(Server-Based)Server-Based)又称为又称为又称为又称为“工作站文件服务器工作站文件服务器工作站文件服务器工作
6、站文件服务器”结构,由若干台微机工作站结构,由若干台微机工作站结构,由若干台微机工作站结构,由若干台微机工作站与一台或多台文件服务器通过通信线路连接起来组成工作站与一台或多台文件服务器通过通信线路连接起来组成工作站与一台或多台文件服务器通过通信线路连接起来组成工作站与一台或多台文件服务器通过通信线路连接起来组成工作站存取服务器文件,共享存储设备。存取服务器文件,共享存储设备。存取服务器文件,共享存储设备。存取服务器文件,共享存储设备。n n客户机客户机客户机客户机/服务器模式服务器模式服务器模式服务器模式(clientclientserver)server)其中一台或几台较大的计算机集中进行共
7、享数据库的管理和其中一台或几台较大的计算机集中进行共享数据库的管理和其中一台或几台较大的计算机集中进行共享数据库的管理和其中一台或几台较大的计算机集中进行共享数据库的管理和存取,称为服务器,而将其它的应用处理工作分散到网络中存取,称为服务器,而将其它的应用处理工作分散到网络中存取,称为服务器,而将其它的应用处理工作分散到网络中存取,称为服务器,而将其它的应用处理工作分散到网络中其它微机上去做,构成分布式的处理系统。其它微机上去做,构成分布式的处理系统。其它微机上去做,构成分布式的处理系统。其它微机上去做,构成分布式的处理系统。n n对等式网络:对等式网络:对等式网络:对等式网络:(Peer-t
8、o-Peer)Peer-to-Peer)在拓扑结构上与专用在拓扑结构上与专用在拓扑结构上与专用在拓扑结构上与专用ServerServer与与与与C CS S相同。在对等式网络结相同。在对等式网络结相同。在对等式网络结相同。在对等式网络结构中,没有专用服务器构中,没有专用服务器构中,没有专用服务器构中,没有专用服务器 每一个工作站既可以起客户机作用也每一个工作站既可以起客户机作用也每一个工作站既可以起客户机作用也每一个工作站既可以起客户机作用也可以起服务器作用。可以起服务器作用。可以起服务器作用。可以起服务器作用。中关村国际软件人才教育联盟网络通信协议及接口网络通信协议及接口 n n什么是网络通
9、信协议什么是网络通信协议什么是网络通信协议什么是网络通信协议 计算机网络中计算机网络中计算机网络中计算机网络中实现通信必须有一些约定即通信协议实现通信必须有一些约定即通信协议实现通信必须有一些约定即通信协议实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出对速率、传输代码、代码结构、传输控制步骤、出对速率、传输代码、代码结构、传输控制步骤、出对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。错控制等制定标准。错控制等制定标准。错控制等制定标准。n n网络通信接口网络通信接口网络通信接口网络通信接口 为了使两个结点之间能进行对话,必须在它们之间为了使两个结
10、点之间能进行对话,必须在它们之间为了使两个结点之间能进行对话,必须在它们之间为了使两个结点之间能进行对话,必须在它们之间建立通信工具建立通信工具建立通信工具建立通信工具(即接口即接口即接口即接口),使彼此之间能进行信息交,使彼此之间能进行信息交,使彼此之间能进行信息交,使彼此之间能进行信息交换。接口包括两部分:换。接口包括两部分:换。接口包括两部分:换。接口包括两部分:硬件装置硬件装置硬件装置硬件装置:实现结点之间的信息传送实现结点之间的信息传送实现结点之间的信息传送实现结点之间的信息传送 软件装置软件装置软件装置软件装置:规定双方进行通信的约定协议规定双方进行通信的约定协议规定双方进行通信的
11、约定协议规定双方进行通信的约定协议中关村国际软件人才教育联盟通信协议分层的思想通信协议分层的思想n n为什么要分层?为什么要分层?为什么要分层?为什么要分层?由于结点之间联系很复杂,在制定协议时,把复杂成由于结点之间联系很复杂,在制定协议时,把复杂成由于结点之间联系很复杂,在制定协议时,把复杂成由于结点之间联系很复杂,在制定协议时,把复杂成份分解成份分解成份分解成份分解成 一些简单的成份,再将它们复合起来。最一些简单的成份,再将它们复合起来。最一些简单的成份,再将它们复合起来。最一些简单的成份,再将它们复合起来。最常用的复合方式是常用的复合方式是常用的复合方式是常用的复合方式是层次方式层次方式
12、层次方式层次方式,即,即,即,即同层间可以通信同层间可以通信同层间可以通信同层间可以通信、上上上上一层可以调用下一层一层可以调用下一层一层可以调用下一层一层可以调用下一层,而与再下一层不发生关系。,而与再下一层不发生关系。,而与再下一层不发生关系。,而与再下一层不发生关系。n n通信协议的分层规定通信协议的分层规定通信协议的分层规定通信协议的分层规定把用户应用程序作为最高层,把物理通信线路作为最把用户应用程序作为最高层,把物理通信线路作为最把用户应用程序作为最高层,把物理通信线路作为最把用户应用程序作为最高层,把物理通信线路作为最低层,将其间的协议处理分为若干层,规定每层处理低层,将其间的协议
13、处理分为若干层,规定每层处理低层,将其间的协议处理分为若干层,规定每层处理低层,将其间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。的任务,也规定每层的接口标准。的任务,也规定每层的接口标准。的任务,也规定每层的接口标准。中关村国际软件人才教育联盟第第 5 层层第第 4 层层第第 3 层层第第 1 层层第第 2 层层主机主机主机主机 B B主机主机主机主机A A第第 5 层层第第 4 层层第第 3 层层第第 1 层层第第 2 层层第第1层协议层协议第第3层协议层协议第第2层协议层协议第第4层协议层协议第第5层协议层协议物物 理理 介介 质质通信协议分层演示通信协议分层演示中关
14、村国际软件人才教育联盟参考模型参考模型OSIOSI参考模型参考模型表表 示示 层层应应 用用 层层会会 话话 层层网网 络络 层层传传 输输 层层数据链路层数据链路层物物 理理 层层应应 用用 层层网网 络络 层层传传 输输 层层物理物理+数据链路层数据链路层TCP/IPTCP/IP参考模型参考模型中关村国际软件人才教育联盟数据的封装与拆封n n封装封装发送方数据在网络模型的各层传送过程中发送方数据在网络模型的各层传送过程中发送方数据在网络模型的各层传送过程中发送方数据在网络模型的各层传送过程中加入头尾的过程加入头尾的过程加入头尾的过程加入头尾的过程n n拆封拆封接受方收到数据后去除相应的头尾
15、的过程接受方收到数据后去除相应的头尾的过程接受方收到数据后去除相应的头尾的过程接受方收到数据后去除相应的头尾的过程中关村国际软件人才教育联盟数据封装数据封装PDU传输层传输层 数据链路层数据链路层物理层物理层 网络层网络层 上层数据上层数据上层数据上层数据传输层控制信息传输层控制信息数据数据网络层控制信息网络层控制信息数据数据逻辑链路子层控制信息逻辑链路子层控制信息0101110101001000010数据数据媒体访问控制子层控制信息媒体访问控制子层控制信息表示层表示层应用层应用层会话层会话层SegmentPacketBitsFrameFCSFCS中关村国际软件人才教育联盟数据拆封数据拆封上层
16、数据上层数据逻辑链路控制子层控制信息逻辑链路控制子层控制信息+网络层控制信网络层控制信息息+传输层控制信息传输层控制信息+上层数据上层数据媒体访问控制子层控制信息媒体访问控制子层控制信息网络层控制信息网络层控制信息+传输层控制信传输层控制信息息+上层数据上层数据逻辑链路子层控制信息逻辑链路子层控制信息传输层控制信息传输层控制信息+上层数据上层数据网络层控制信息网络层控制信息上层数据上层数据传输层控制信息传输层控制信息0101110101001000010传输层传输层 数据链路层数据链路层物理层物理层 网络层网络层 表示层表示层应用层应用层会话层会话层中关村国际软件人才教育联盟TCP/IP协议协
17、议TCP-TCP-TransmissionControlProtocolTransmissionControlProtocolIP-IP-InternetProtocolInternetProtocoln nTCP/IPTCP/IP协协协协议议议议可可可可保保保保证证证证不不不不同同同同厂厂厂厂家家家家生生生生产产产产的的的的计计计计算算算算机机机机能能能能在在在在共共共共同同同同网网网网络络络络环环环环境境境境下下下下运运运运行行行行,解解解解决决决决异异异异构构构构网网网网通通通通信信信信问问问问题题题题,TCP/IPTCP/IPTCP/IPTCP/IP与与与与低低低低层层层层的的的的数数
18、数数据据据据链链链链路路路路层层层层和和和和物物物物理理理理层层层层无无无无关关关关,能能能能广广广广泛泛泛泛地地地地支支支支持持持持由由由由低低低低两两两两层层层层协协协协议议议议构成的物理网络结构。构成的物理网络结构。构成的物理网络结构。构成的物理网络结构。n nTCPTCP-面面面面向向向向连连连连接接接接的的的的可可可可靠靠靠靠数数数数据据据据传传传传输输输输协协协协议议议议;TCPTCP重重重重发发发发一一一一切切切切没没没没有有有有收收收收到到到到的的的的数数数数据据据据,进进进进行行行行数数数数据据据据内内内内容容容容准准准准确确确确性性性性检检检检查查查查并并并并保保保保证证证
19、证分分分分组组组组的正确顺序。的正确顺序。的正确顺序。的正确顺序。中关村国际软件人才教育联盟IP协议协议n nIPIP协协协协议议议议是是是是网网网网际际际际层层层层的的的的主主主主要要要要协协协协议议议议,支支支支持持持持网网网网间间间间互互互互连连连连的数据报通信。它提供主要功能有:的数据报通信。它提供主要功能有:的数据报通信。它提供主要功能有:的数据报通信。它提供主要功能有:无连接数据报传送无连接数据报传送无连接数据报传送无连接数据报传送 数据报路由选择和差错控制数据报路由选择和差错控制数据报路由选择和差错控制数据报路由选择和差错控制n nIPIP协议主要特性协议主要特性协议主要特性协议
20、主要特性:IPIP协协协协议议议议将将将将报报报报文文文文传传传传送送送送到到到到目目目目的的的的主主主主机机机机后后后后,无无无无论论论论传传传传送送送送正正正正确确确确与与与与否否否否都都都都不不不不进进进进行行行行检检检检验验验验、不不不不回回回回送送送送确确确确认认认认、不不不不保保保保证证证证分分分分组组组组的的的的正正正正确确确确顺顺顺顺序。序。序。序。中关村国际软件人才教育联盟IP地址地址n nTCP/IPTCP/IP用用用用IPIP地址来标识源地址和目的地址地址来标识源地址和目的地址地址来标识源地址和目的地址地址来标识源地址和目的地址IPIP地地地地址址址址功功功功能能能能:为
21、为为为实实实实现现现现网网网网络络络络中中中中不不不不同同同同计计计计算算算算机机机机之之之之间间间间的的的的通通通通信信信信,每每每每台机器都必须有一个与众不同的标识台机器都必须有一个与众不同的标识台机器都必须有一个与众不同的标识台机器都必须有一个与众不同的标识-IPIP地址;地址;地址;地址;IPIP地地地地址址址址格格格格式式式式:数数数数字字字字型型型型,3232位位位位,由由由由4 4个个个个 8 8位位位位的的的的二二二二进进进进制制制制数数数数组组组组成,每成,每成,每成,每8 8位之间用圆点隔开,如:位之间用圆点隔开,如:位之间用圆点隔开,如:位之间用圆点隔开,如:166.11
22、1.78.98166.111.78.98;IPIP地地地地址址址址组组组组成成成成:网网网网络络络络标标标标识识识识(netIdnetId)+主主主主机机机机标标标标识识识识(hostIdhostId);IPIP地地地地址址址址分分分分类类类类:分分分分为为为为A A、B B、C C三三三三类类类类,每每每每个个个个类类类类别别别别的的的的网网网网络络络络标标标标识识识识和主机标识各有规则。和主机标识各有规则。和主机标识各有规则。和主机标识各有规则。中关村国际软件人才教育联盟AC类类IP地址格式地址格式1Bits:0NetworkHostHostHost8 916 1724 2532Range
23、(1-126)110NetworkNetworkHostHost8 916 1724 2532Range(128-191)1110NetworkNetworkNetworkHost8 916 17242532Range(192-223)A类类:B类类:Bits:C类类:Bits:中关村国际软件人才教育联盟网络掩码网络掩码(mask)n n网络掩码的作用网络掩码的作用网络掩码的作用网络掩码的作用 根据网络掩码根据网络掩码根据网络掩码根据网络掩码+IPIP地址可地址可地址可地址可确定确定确定确定该主机的该主机的该主机的该主机的网络地址网络地址网络地址网络地址n n网络掩码的组成网络掩码的组成网络掩
24、码的组成网络掩码的组成 对对对对每每每每个个个个网网网网络络络络的的的的网网网网络络络络地地地地址址址址设设设设定定定定一一一一个个个个按按按按位位位位对对对对应应应应的的的的3232bitbit的的的的二二二二进进进进制制制制数数数数:网网网网络络络络地地地地址址址址部部部部分分分分的的的的对对对对应应应应位位位位设设设设置置置置位位位位1 1,主机地址部分的对应位设置位,主机地址部分的对应位设置位,主机地址部分的对应位设置位,主机地址部分的对应位设置位00。A A类网络掩码:类网络掩码:类网络掩码:类网络掩码:255.0.0.0255.0.0.0 B B类网络掩码:类网络掩码:类网络掩码:
25、类网络掩码:255.255.0.0255.255.0.0 C C类网络掩码:类网络掩码:类网络掩码:类网络掩码:255.255.255.0255.255.255.0中关村国际软件人才教育联盟特殊的特殊的IP地址地址n n对于本地计算机(就是你正在使用的那对于本地计算机(就是你正在使用的那台计算机),有两种方法标识它:台计算机),有两种方法标识它:用主机名标识:用主机名标识:用主机名标识:用主机名标识:localhostlocalhost用用用用IPIP地址标识:地址标识:地址标识:地址标识:127.0.0.1127.0.0.1它们是等价的它们是等价的它们是等价的它们是等价的中关村国际软件人才教
26、育联盟Java对网络编程的支持对网络编程的支持n nJJ包中包含了包中包含了包中包含了包中包含了3030多个用于网络编程的接口和类多个用于网络编程的接口和类多个用于网络编程的接口和类多个用于网络编程的接口和类n n常用的类:常用的类:常用的类:常用的类:InetAddressInetAddress:该类用来代表一个:该类用来代表一个:该类用来代表一个:该类用来代表一个IPIP地址地址地址地址 ServerSocketServerSocket:该类实现服务器端:该类实现服务器端:该类实现服务器端:该类实现服务器端SocketSocket SocketSocket:该类实现客户端:该类实现客户端:
27、该类实现客户端:该类实现客户端SocketSocket URLURL:该类用来代表一个统一资源定位符:该类用来代表一个统一资源定位符:该类用来代表一个统一资源定位符:该类用来代表一个统一资源定位符 URLDecoderURLDecoder:该类用于:该类用于:该类用于:该类用于HTMLHTML表单译码表单译码表单译码表单译码 URLEncoderURLEncoder:该类用于:该类用于:该类用于:该类用于HTMLHTML表单编码表单编码表单编码表单编码 DatagramPacketDatagramPacket:该类用来代表一个数据报包:该类用来代表一个数据报包:该类用来代表一个数据报包:该类用
28、来代表一个数据报包 DatagramSocketDatagramSocket:该类用来代表一个发送和接:该类用来代表一个发送和接:该类用来代表一个发送和接:该类用来代表一个发送和接收数据报包的收数据报包的收数据报包的收数据报包的SocketSocket中关村国际软件人才教育联盟.InetAddress类类n n定义:定义:定义:定义:publicclasspublicclassInetAddressInetAddress extendsextendsObjectObjectimplementsimplementsSerializableSerializablen n常用方法:常用方法:常用方法
29、:常用方法:publicpublicstaticstatic InetAddressInetAddress getByName(StringgetByName(Stringhost)host):返:返:返:返回指定主机的回指定主机的回指定主机的回指定主机的IPIP地址对象地址对象地址对象地址对象 publicpublicstaticstatic InetAddressInetAddressgetAllByName(StringgetAllByName(Stringhost)host):返回一个数组,其中包含指定主机的所有:返回一个数组,其中包含指定主机的所有:返回一个数组,其中包含指定主机的所
30、有:返回一个数组,其中包含指定主机的所有IPIP地址对象地址对象地址对象地址对象 publicpublicstaticstatic InetAddressInetAddress getLocalHostgetLocalHost()():返回本地主机:返回本地主机:返回本地主机:返回本地主机的的的的IPIP地址对象地址对象地址对象地址对象 publicpublicStringString getHostAddressgetHostAddress()():返回一个以:返回一个以:返回一个以:返回一个以“点分十进制点分十进制点分十进制点分十进制”表示的主机表示的主机表示的主机表示的主机IPIP地址,
31、如:地址,如:地址,如:地址,如:“132.163.4.102”132.163.4.102”publicpublicStringString getHostNamegetHostName()():返回主机名:返回主机名:返回主机名:返回主机名中关村国际软件人才教育联盟得到主机得到主机IP地址示例地址示例n n/:/:WhoAmI.javaWhoAmI.java n n/给定一个主机名,得到相应的给定一个主机名,得到相应的给定一个主机名,得到相应的给定一个主机名,得到相应的IPIP地址地址地址地址 n nimport import .*;.*;n npublic class public cla
32、ss WhoAmIWhoAmI public static void public static void main(Stringmain(String argsargs)throws Exceptionthrows Exception if(args.lengthif(args.length!=1)!=1)System.err.printlnSystem.err.println(Usage:(Usage:WhoAmIWhoAmI MachineNameMachineName););System.exit(1);System.exit(1);n n InetAddressInetAddress
33、 a=InetAddress.getByName(args0);a=InetAddress.getByName(args0);System.out.println(aSystem.out.println(a););n nn n中关村国际软件人才教育联盟URLn nURLURL(Uniform(Uniform ResourceResource Locator)Locator)-统统统统一一一一资资资资源定位符,表示源定位符,表示源定位符,表示源定位符,表示InternetInternet上某一资源的地址。上某一资源的地址。上某一资源的地址。上某一资源的地址。n nURLURL组成组成:协议名和资
34、源名协议名和资源名协议名和资源名协议名和资源名 protocol:resourceNameprotocol:resourceNamen nURLURL举例举例:http:/ http:/http:/ n常用构造函数常用构造函数常用构造函数常用构造函数 publicURL(Stringspec);publicURL(Stringspec);URLu1=newURLu1=newURL(“URL(“http:/ 2-1importimportjava.iojava.io.*;.*;.*;.*;publicclasspublicclassURLReaderURLReader publicstaticv
35、oidpublicstaticvoidmain(Stringmain(Stringargsargs)trytryURLURLtirctirc=new=newURL(http:/URL(http:/ InputStreamReader(InputStreamReader(tirc.openStreamtirc.openStream()(););Strings;Strings;while(s=while(s=in.readLinein.readLine()!=null)()!=null)System.out.println(sSystem.out.println(s););in.close();i
36、n.close();catch(MalformedURLExceptioncatch(MalformedURLExceptione)e)System.out.println(eSystem.out.println(e););catch(IOExceptioncatch(IOExceptione)e)System.out.println(eSystem.out.println(e););中关村国际软件人才教育联盟URL类使用示例类使用示例 2-2n n程序程序程序程序URLReader.javaURLReader.java输出结果输出结果输出结果输出结果:中关村国际软件人才教育联盟服务器(服务器
37、(Server)n n通常,我们把网络中对其它用户提供某种服务通常,我们把网络中对其它用户提供某种服务通常,我们把网络中对其它用户提供某种服务通常,我们把网络中对其它用户提供某种服务的一台机器叫做服务器。这里的服务器就是指的一台机器叫做服务器。这里的服务器就是指的一台机器叫做服务器。这里的服务器就是指的一台机器叫做服务器。这里的服务器就是指一台实实在在存在的机器一台实实在在存在的机器一台实实在在存在的机器一台实实在在存在的机器n n在一台物理的服务器上,往往运行着多个服务在一台物理的服务器上,往往运行着多个服务在一台物理的服务器上,往往运行着多个服务在一台物理的服务器上,往往运行着多个服务程序
38、程序程序程序,比如,比如,比如,比如WEBWEB服务程序、服务程序、服务程序、服务程序、FTPFTP服务程序、服务程序、服务程序、服务程序、DNSDNS服务程序等等。我们把这些服务程序也叫服务程序等等。我们把这些服务程序也叫服务程序等等。我们把这些服务程序也叫服务程序等等。我们把这些服务程序也叫做服务器,如做服务器,如做服务器,如做服务器,如WEBWEB服务器、服务器、服务器、服务器、FTPFTP服务器、服务器、服务器、服务器、DNSDNS服务器等等服务器等等服务器等等服务器等等n n平时我们所说的平时我们所说的平时我们所说的平时我们所说的“联到某个服务器上联到某个服务器上联到某个服务器上联到
39、某个服务器上”,实际,实际,实际,实际上是指上是指上是指上是指联到正在某台物理的服务器上运行的某联到正在某台物理的服务器上运行的某联到正在某台物理的服务器上运行的某联到正在某台物理的服务器上运行的某个服务程序上个服务程序上个服务程序上个服务程序上中关村国际软件人才教育联盟端口(端口(port)n n一个一个一个一个IPIP地址只能用来标识一个物理的服务器。地址只能用来标识一个物理的服务器。地址只能用来标识一个物理的服务器。地址只能用来标识一个物理的服务器。如果我们想和运行在其上的某个服务程序连接,如果我们想和运行在其上的某个服务程序连接,如果我们想和运行在其上的某个服务程序连接,如果我们想和运
40、行在其上的某个服务程序连接,只用只用只用只用IPIP地址是不行的地址是不行的地址是不行的地址是不行的n n我们使用我们使用我们使用我们使用“端口端口端口端口”来代表某个正在运行的服务来代表某个正在运行的服务来代表某个正在运行的服务来代表某个正在运行的服务程序(服务器)。为了把每个服务器区分开来,程序(服务器)。为了把每个服务器区分开来,程序(服务器)。为了把每个服务器区分开来,程序(服务器)。为了把每个服务器区分开来,我们对端口进行编号,称为我们对端口进行编号,称为我们对端口进行编号,称为我们对端口进行编号,称为端口号端口号端口号端口号。端口号取。端口号取。端口号取。端口号取值范围是值范围是值
41、范围是值范围是0 06553565535,其中,其中,其中,其中0 010241024是系统保是系统保是系统保是系统保留端口号。如留端口号。如留端口号。如留端口号。如HTTPHTTP服务器端口号是服务器端口号是服务器端口号是服务器端口号是8080,FTPFTP服服服服务器端口号是务器端口号是务器端口号是务器端口号是2121等等等等n n注意:注意:注意:注意:端口并不是机器上一个物理上存在的场端口并不是机器上一个物理上存在的场端口并不是机器上一个物理上存在的场端口并不是机器上一个物理上存在的场所,而是一种软件抽象所,而是一种软件抽象所,而是一种软件抽象所,而是一种软件抽象中关村国际软件人才教育
42、联盟套接字(套接字(Socket)2-1n n“套接字套接字套接字套接字”或者或者或者或者“插座插座插座插座”(SocketSocket)也是一种软件形)也是一种软件形)也是一种软件形)也是一种软件形式的抽象,用于表达两台机器间一个连接的式的抽象,用于表达两台机器间一个连接的式的抽象,用于表达两台机器间一个连接的式的抽象,用于表达两台机器间一个连接的“终端终端终端终端”。n n针对一个特定的连接,每台机器上都有一个针对一个特定的连接,每台机器上都有一个针对一个特定的连接,每台机器上都有一个针对一个特定的连接,每台机器上都有一个SocketSocket。可以想象它们之间有一条虚拟的可以想象它们之
43、间有一条虚拟的可以想象它们之间有一条虚拟的可以想象它们之间有一条虚拟的“线缆线缆线缆线缆”,线缆的每一,线缆的每一,线缆的每一,线缆的每一端都插入一个端都插入一个端都插入一个端都插入一个“套接字套接字套接字套接字”或者或者或者或者“插座插座插座插座”里。里。里。里。n n在在在在JavaJava中,我们创建一个中,我们创建一个中,我们创建一个中,我们创建一个SocketSocket,用它建立与其他机,用它建立与其他机,用它建立与其他机,用它建立与其他机器的连接。器的连接。器的连接。器的连接。n n从从从从SocketSocket得到的结果是一个得到的结果是一个得到的结果是一个得到的结果是一个I
44、nputStreamInputStream以及以及以及以及OutputStreamOutputStream(若使用恰当的转换器,则分别是(若使用恰当的转换器,则分别是(若使用恰当的转换器,则分别是(若使用恰当的转换器,则分别是ReaderReader和和和和WriterWriter),以便),以便),以便),以便将连接作为一个将连接作为一个将连接作为一个将连接作为一个IOIO流对象对流对象对流对象对流对象对待待待待。中关村国际软件人才教育联盟套接字(套接字(Socket)2-2n nsocketsocket通常用来实现通常用来实现通常用来实现通常用来实现client-serverclient-
45、server连接。连接。连接。连接。n 包包包包 中中中中 定定定定 义义义义 的的的的 两两两两 个个个个 类类类类 SocketSocket和和和和ServerSocketServerSocket,分分分分别别别别用用用用来来来来实实实实现现现现双双双双向向向向连连连连接接接接的的的的clientclient和和和和serverserver端端端端n n建立连接时所需的寻址信息建立连接时所需的寻址信息建立连接时所需的寻址信息建立连接时所需的寻址信息 远程计算机的机器名或远程计算机的机器名或远程计算机的机器名或远程计算机的机器名或IPIP地址地址地址地址 试图连接的端口号试图连接的端口号试图
46、连接的端口号试图连接的端口号(Portnumber)Portnumber)中关村国际软件人才教育联盟Java Socket通信模型通信模型中关村国际软件人才教育联盟网络编程的四个基本步骤网络编程的四个基本步骤1.1.创建创建创建创建socket;socket;2.2.打开连接到打开连接到打开连接到打开连接到socketsocket的输入的输入的输入的输入/输出流;输出流;输出流;输出流;3.3.按照一定的协议对按照一定的协议对按照一定的协议对按照一定的协议对socketsocket进行读进行读进行读进行读/写操作;写操作;写操作;写操作;4.4.关闭关闭关闭关闭socket;socket;中关
47、村国际软件人才教育联盟.ServerSocket类类n n定义:定义:定义:定义:publicclasspublicclassServerSocketServerSocket extendsextendsObjectObjectn n构造函数:构造函数:构造函数:构造函数:ServerSocket(intServerSocket(int port);/port);/建建建建立立立立一一一一个个个个负负负负责责责责监监监监听听听听指指指指定定定定端端端端口口口口的监听的监听的监听的监听socketsocket ServerSocket(intServerSocket(intport,port,i
48、ntintcount);count);n n常用方法:常用方法:常用方法:常用方法:Socketaccept()Socketaccept();/;/用于等待一个连接的建立。本方法将用于等待一个连接的建立。本方法将用于等待一个连接的建立。本方法将用于等待一个连接的建立。本方法将中断当前线程的运行,直到连接建立起来为止。本方法返回中断当前线程的运行,直到连接建立起来为止。本方法返回中断当前线程的运行,直到连接建立起来为止。本方法返回中断当前线程的运行,直到连接建立起来为止。本方法返回一个一个一个一个已建立的已建立的已建立的已建立的socketsocket对象,通过该对象,程序可以与连接对象,通过该
49、对象,程序可以与连接对象,通过该对象,程序可以与连接对象,通过该对象,程序可以与连接的客户机进行通信的客户机进行通信的客户机进行通信的客户机进行通信 voidvoidclose()close();/;/关闭关闭关闭关闭监听监听监听监听socketsocket中关村国际软件人才教育联盟.Socket类类2-1n n定义:定义:定义:定义:publicclassSocketextendspublicclassSocketextendsObjectObjectn n构造函数:构造函数:构造函数:构造函数:Socket();/Socket();/建立一个尚未被连接的建立一个尚未被连接的建立一个尚未被连
50、接的建立一个尚未被连接的socketsocket publicpublicSocket(StringSocket(Stringhost,host,intintport);port);/建建建建立立立立一一一一个个个个socketsocket,并且将它连接到远程主机上的一个端口,并且将它连接到远程主机上的一个端口,并且将它连接到远程主机上的一个端口,并且将它连接到远程主机上的一个端口 publicpublic Socket(InetAddressSocket(InetAddressaddress,address,intintport)port);/建建建建立立立立一一一一个个个个socketso