第二十二课网络编程_第1页
第二十二课网络编程_第2页
第二十二课网络编程_第3页
第二十二课网络编程_第4页
第二十二课网络编程_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二十二课网络编程企业内部软件工程师培训讲义本课内容计算机网络基础

TCP/IP协议IP地址及网络掩码使用包中的类实现网络通信

--URL类及其用法 --Socket通信计算机网络基础

什么是计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。计算机网络的主要功能资源共享信息传输与集中处理

均衡负荷与分布处理

综合信息服务(www/综合业务数字网络

ISDN)计算机网络分类按规模大小和延伸范围划分:局域网(LAN--localareanetwork)城域网(MAN--metropolitanareanetwork)广域网(WAN–wideareanetwork)按照网络的拓扑结构划分:环形网、星形网、总线型网等

按照通信传输的介质来划分:双绞线网、同轴电缆网、光纤网和卫星网等

按照信号频带占用方式划分:基带网和宽带网

局域网的几种工作模式

专用服务器结构(Server-Based)

又称为“工作站/文件服务器”结构,由若干台微机工作站与一台或多台文件服务器通过通信线路连接起来组成工作站存取服务器文件,共享存储设备。

客户机/服务器模式(client/server)

其中一台或几台较大的计算机集中进行共享数据库的管理和存取,称为服务器,而将其它的应用处理工作分散到网络中其它微机上去做,构成分布式的处理系统。

对等式网络:(Peer-to-Peer)

在拓扑结构上与专用Server与C/S相同。在对等式网络结构中,没有专用服务器每一个工作站既可以起客户机作用也可以起服务器作用。

网络通信协议及接口

什么是网络通信协议计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。

网络通信接口

为了使两个结点之间能进行对话,必须在它们之间建立通信工具(即接口),使彼此之间能进行信息交换。接口包括两部分:硬件装置:实现结点之间的信息传送软件装置:规定双方进行通信的约定协议通信协议分层的思想为什么要分层由于结点之间联系很复杂,在制定协议时,把复杂成份分解成

一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。

通信协议的分层规定

把用户应用程序作为最高层,把物理通信线路作为最低层,将其间的协议处理分为若干层,规定每层处理的任务,也规定每层的接口标准。

第5层第4层第3层第1层第2层主机B主机A第5层第4层第3层第1层第2层第1层协议第3层协议第2层协议第4层协议第5层协议物理介质通信协议分层演示参考模型OSI

参考模型表示层应用层会话层网络层传输层数据链路层物理层应用层网络层传输层物理+数据链路层TCP/IP

参考模型数据的封装与拆封封装发送方数据在网络模型的各层传送过程中加入头尾的过程拆封接受方收到数据后去除相应的头尾的过程数据封装PDU传输层数据链路层物理层网络层上层数据上层数据传输层控制信息数据网络层控制信息数据逻辑链路子层控制信息0101110101001000010数据媒体访问控制子层控制信息表示层应用层会话层SegmentPacketBitsFrameFCSFCS数据拆封上层数据逻辑链路控制子层控制信息+网络层控制信息+传输层控制信息+上层数据媒体访问控制子层控制信息网络层控制信息+传输层控制信息+上层数据逻辑链路子层控制信息传输层控制信息+上层数据网络层控制信息上层数据传输层控制信息0101110101001000010传输层数据链路层物理层网络层表示层应用层会话层网络数据通讯演示TCP/IP协议TCP--TransmissionControlProtocolIP--InternetProtocolTCP/IP协议可保证不同厂家生产的计算机能在共同网络环境下运行,解决异构网通信问题,TCP/IP与低层的数据链路层和物理层无关,能广泛地支持由低两层协议构成的物理网络结构。

TCP--面向连接的可靠数据传输协议;TCP重发一切没有收到的数据,进行数据内容准确性检查并保证分组的正确顺序。IP协议IP协议是网际层的主要协议,支持网间互连的数据报通信。它提供主要功能有:无连接数据报传送数据报路由选择和差错控制IP协议主要特性:

IP协议将报文传送到目的主机后,无论传送正确与否都不进行检验、不回送确认、不保证分组的正确顺序。IP地址TCP/IP用IP地址来标识源地址和目的地址IP地址功能:为实现网络中不同计算机之间的通信,每台机器都必须有一个与众不同的标识---IP地址;IP地址格式:数字型,32位,由4个8位的二进制数组成,每8位之间用圆点隔开,如:8;IP地址组成:网络标识(netId)+主机标识(hostId);IP地址分类:分为A、B、C三类,每个类别的网络标识和主机标识各有规则。A~C类IP地址格式1Bits:0NetworkHostHostHost891617242532Range(1-126)110NetworkNetworkHostHost891617242532Range(128-191)1110NetworkNetworkNetworkHost891617242532Range(192-223)A类:B类:Bits:C类:Bits:网络掩码(mask)网络掩码的作用根据网络掩码+IP地址可确定该主机的网络地址网络掩码的组成对每个网络的网络地址设定一个按位对应的32bit的二进制数:网络地址部分的对应位设置位1,主机地址部分的对应位设置位0。A类网络掩码:B类网络掩码:C类网络掩码:URLURL(UniformResourceLocator)----统一资源定位器,表示Internet上某一资源的地址。URL组成:协议名和资源名

protocol:resourceNameURL举例://home/welcome.html/developers/.URL类常用构造方法publicURL(Stringspec);

URLu1=newURL(“/home/”);publicURL(URLcontext,Stringspec);

URLu2=newURL(u1,“welcome.html”);publicURL(Stringprotocol,Stringhost,Stringfile);

URLu3=newURL(“http”,“”,“developers/index.html”);publicURL(Stringprotocol,Stringhost,intport,Stringfile);

URLu4=newURL(“http”,“”,80,“developers/index.html”);URL类应用举例(1)importjava.io.*;import.*;publicclassURLReader{ publicstaticvoidmain(Stringargs[]){ try{ URLtirc=newURL("/"); BufferedReaderin=newBufferedReader(new InputStreamReader(tirc.openStream())); Strings; while((s=in.readLine())!=null) System.out.println(s); in.close(); }catch(MalformedURLExceptione){ System.out.println(e); }catch(IOExceptione){ System.out.println(e); } }}URL类应用举例(2)程序URLReader.java输出结果:<html><head><title>清华大学网站首页</title><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><metahttp-equiv="refresh"content="0;URL=./eng/index.htm"></head><bodybgcolor="#FEFAF2"text="#000000"topmargin=0leftmargin=0marginwidth=0marginheight=0></body></html>//如使用了代理服务器,则使用下述命令运行://java-DxyHost=<hostname|hostIP>-DxyPort=<port>URLReaderSocket两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个socket。socket通常用来实现client-server连接。包中定义的两个类Socket和ServerSocket,分别用来实现双向连接的client和server端建立连接时所需的寻址信息远程计算机的机器名或IP地址试图连接的端口号(Portnumber)Socket通信模型ServerServerSockets(port#)s.accept()/等待连接Socket()OutputStreamInputStreamsocket.close()ClientSocket(host,port#)(Attempttoconnect)OutputStreamInputStreamsocket.close()网络编程的四个基本步骤创建socket;打开连接到socket的输入/输出流;按照一定的协议对socket进行读/写操作;关闭socket;创建socketSocket/ServerSocket类的构造方法Socket(InetAddressaddress,intport);Socket(InetAddressaddress,intport,booleanstream);Socket(Stringhost,intport);Socket(Stringhost,intport,booleanstream);ServerSocket(intport);ServerSocket(intport,intcount);客户端Socket的建立try{Socketsocket=newSocket(”",2000);}catch(IOExceptione){System.out.println("Error:"+e);}服务器端Socket的建立ServerSocketserver=null;try{server=newServerSocket(2000);}catch(IOExceptione){System.out.println("cannotlistento:"+e);}Socketsocket=null;try{socket=server.accept();}catch(IOExceptione){System.out.println("Error:"+e);}打开输入/出流

PrintStreamos=newPrintStream(new BufferedOutputStream(socket.getOutputStream())); DataInputStreamis=newDataInputStream(socket.getInputStream());关闭Socket os.close(); is.close(); socket.close();简单的client/server程序import.*;importjava.io.*;publicclassTestServer{ publicstaticvoidmain(Stringargs[]){ try{ ServerSockets=newServerSocket(8888); while(true){ Sockets1=s.accept(); OutputStreamos=s1.getOutputStream(); DataOutputStreamdos=newDataOutputStream(os); dos.writeUTF("Hello,"+s1.getInetAddress()+

"port#"+s1.getPort()+"bye-bye!");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论