Java面向对象程序设计案例教程(第二版) 课件 第11章 网络程序设计_第1页
Java面向对象程序设计案例教程(第二版) 课件 第11章 网络程序设计_第2页
Java面向对象程序设计案例教程(第二版) 课件 第11章 网络程序设计_第3页
Java面向对象程序设计案例教程(第二版) 课件 第11章 网络程序设计_第4页
Java面向对象程序设计案例教程(第二版) 课件 第11章 网络程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

第11章网络程序设计《Java面向对象程序设计案例教程(第2版)》目录/Contents11.111.211.3基础知识IP地址封装HTTP思政要点/Point网络安全

自觉维护网络环境的安全,遵守相关法律法规。诚信与规范

严格遵守行业规范和道德准则,保护用户数据的安全和隐私。创新精神

在项目开发中勇于创新,共同解决问题。法律意识

确保网络开发和运维工作的合法性和合规性,树立法治观念吧。基础知识11.1

传输控制协议(TransmissionControlProtocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它保障了两个应用程序之间的可靠通信。在CP的基础上拓展了网际协议(InternetProtocol,IP)等内容,又组成了互联网常用的TCP/IP。套接字(Socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行与文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。套接字为TCP建立了两台计算机之间的通信机制。客户端程序会创建一个套接字,并尝试连接服务器的套接字。

当连接建立时,服务器会创建一个Socket对象。客户端与服务器可以通过对Socket对象的写入和读取来进行通信。.Socket类代表一个套接字,而.ServerSocket类为服务器程序提供了一种机制来监听客户端,并与它们建立连接。11.1.1TCP两台计算机之间使用套接字建立TCP连接的步骤如下。1.服务器实例化一个ServerSocket对象,表示通过服务器上的端口通信。2.服务器调用ServerSocket类的accept方法,该方法将一直等待,直到客户端连接上服务器给定的端口。

3.服务器等待时,一个客户端实例化一个Socket对象,指定服务器名称和端口号来请求服务。

4.Socket类的构造函数试图将客户端连接到指定的服务器和端口号。如果通信被建立,则在客户端创建一个Socket对象与服务器进行通信。5.在服务器端,accept方法返回服务器上一个新的Socket引用,该Socket连接到客户端的Socket。11.1.1TCP11.1.1TCP方法描述publicServerSocket(intport)throwsIOException构造方法,用于创建绑定到特定端口的服务器套接字publicServerSocket(intport,intbacklog)throwsIOException构造方法,利用指定的backlog创建服务器套接字并将其绑定到指定的本地端口号publicServerSocket(intport,intbacklog,InetAddressaddress)throwsIOException构造方法,利用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器publicServerSocket()throwsIOException构造方法,创建非绑定服务器套接字publicintgetLocalPort()返回在此套接字上监听的端口publicSocketaccept()throwsIOException监听并接收到此套接字的连接publicvoidsetSoTimeout(inttimeout)通过指定超时值,启用/禁用SO_TIMEOUT,以毫秒为单位publicvoidbind(SocketAddresshost,intbacklog)将ServerSocket绑定到特定地址(IP地址和端口号)表11-1ServerSocket类的常用方法11.1.1TCP方法描述publicSocket(Stringhost,intport)throwsUnknownHostException,IOException创建一个流套接字并将其连接到指定主机上的指定端口号publicSocket(InetAddresshost,intport)throwsIOException创建一个流套接字并将其连接到指定IP地址的指定端口号publicSocket(Stringhost,intport,InetAddress,intlocalPort)throwsIOException创建一个流套接字并将其连接到指定远程主机上的指定远程端口publicSocket(InetAddresshost,intport,InetAddresslocalAddress,intlocalPort)throwsIOException创建一个流套接字并将其连接到指定远程地址上的指定远程端口publicSocket()通过系统默认类型的SocketImpl创建未连接套接字表11-2ServerSocket类的常用方法11.1.1TCP表11-3Socket类的常用方法方法描述publicvoidconnect(SocketAddresshost,inttimeout)throwsIOException将此套接字连接到服务器,并指定一个超时值publicInetAddressgetInetAddress()返回套接字连接的地址publicintgetPort()返回此套接字连接的远程端口publicintgetLocalPort()返回此套接字绑定的本地端口publicSocketAddressgetRemoteSocketAddress()返回此套接字连接的端点的地址,如果未连接,则返回NullpublicIutputStreamgetIutputStream()throwsIOException返回此套接字的输入流publicOutputStreamgetOutputStream()throwsIOException返回此套接字的输出流publicvoidclose()throwsIOException关闭此套接字11.1.2UDP

用户数据报协议(UserDatagramProtocol,UDP)是一个无连接的协议,提供面向事务的简单不可靠信息的传送服务。与TCP不同,由于UDP是无连接的,因此,相对于TCP而言,其数据传输的可靠性较低,但是传输的效率较高。同时,UDP也拥有更简单的步骤且占用较少的资源。在很多对数据的可靠性没有过高要求的场合中,使用UDP更为合适。UDP并没有客户端与服务器端的区分,统一使用DatagramSocket类作为端,使用DatagramPacket类打包数据。UDP作为一种无连接的、不可靠的传输协议,在网络通信中也有其独特的应用场景。它通过简单的数据报传输机制,提供了高效、低延迟的数据传输服务,特别适用于对实时性要求较高的应用。了解UDP的特点和适用场景,有助于在实际开发中选择合适的传输协议。11.1.2UDP方法描述DatagramSocket()构造数据报套接字并将其绑定到本地主机的任何可用的端口DatagramSocket(intport)创建数据报套接字并将其绑定到本地主机的指定端口DatagramSocket(intport,InetAddressaddress)创建数据报套接字,将其绑定到指定的本地地址,即指定网卡发送和接收数据DatagramPacket(byte[]buf,intlength)构造DatagramPacket,用来接收长度为length的数据包DatagramPacket(byte[]buf,intlength,InetAddressaddress,intport)构造数据报包,用于将长度为length的包发送到指定主机的指定端口号表11-4UDP常用类的构造方法11.1.2UDP表11-5UDP与TCP的比较特性UDPTCP连接类型无连接面向连接可靠性不可靠可靠传输速度快较慢数据单位数据报字节流流量控制无有拥塞控制无有适用场景实时应用、查询响应、广播和多播文件传输、电子邮件、网页浏览、远程登录IP地址封装11.2

//导入相关包import.InerAddress;import.UnknownHostException:publicclassTestiP{publicstaticvoidmain(String[]args){try{InetAddressinetl=InetAddress.getByName("”);System.out.println("通过域名获得IP地址:"+inetl);//组装IP地址为一个byte数组

byte[]ipv4=newbyte[4];ipv4[0]=6l;ipv4[1]=(byte)135;ipv4[2]=(byte)169;ipv4[3]=125;10.2.1继承java.lang.Thread类例11-2InetAddress类的使用示例代码

System.out.println("byte数组真实值:"+ipv4[0]+","+ipv4[1]+","+ipv4[2]+",”+ipv4[3]+",");//获得指定网络地址的InetAddress类对象InetAddressinet2=InetAddress.getByAddress("baidu",ipv4);System.out.println("IP地址:"+inet2);//获得本地网络地址的InetAddress类对象InetAddressinet3=InetAddress.getLocalHost();System.out.println("本机IP地址:”+inet3);}catch(UnknownHostExceptione){e.printStackTrace();}}}}HTTP11.311.3.1HTTP请求/响应的步骤HTTP请求和响应的过程包括以下5个步骤,如图11-1所示。1.建立TCP连接客户端和服务器通过三次握手建立TCP连接,确保数据传输的可靠性和完整性。2.发送HTTP请求客户端通过建立的TCP连接发送HTTP请求,请求行、请求头和请求体包含请求的具体信息。3.服务器处理请求并发送响应服务器解析客户端的请求,生成相应的HTTP响应,响应状态码、响应头和响应体包含响应的具体信息。4.客户端接收响应客户端接收并处理服务器的响应,如渲染HTML页面。5.关闭TCP连接请求和响应完成后,可以根据需要关闭TCP连接,或者保持连接以进行后续的请求和响应。11.3.1HTTP请求/响应的步骤图11-1HTTP请求/响应步骤图

11.3.23次握手协议1.第一次握手客户端向服务器发送一个带有SYN标志的TCP报文段,请求建立连接。客户端进

温馨提示

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

评论

0/150

提交评论