传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793 定义。
TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。
发展历程:
TCP的正式定义由1981年9月的RFC793 给出。随着时间的推移,已经对其做了许多改进,各种错误和不一致的地方逐渐被修复。
为了让你感受到TCP的扩展历程,现在重要的RFC有:RFC793plus澄清了说明,RFC1122 修复了bug、RFC1323 做了高性能扩展,RFC2018 定义了选择性确认,RFC2581说明了拥塞控制、RFC2873定义了为服务质量而重用的头字段,RFC2988 改进了重传计时器,RFC3168 定义了显式拥塞通知。完整的协议集合很大,因而专门发布了一个针对许多RFC的指南,它就是作为另一个RFC文档公布的RFC4614 。
创建客户端
创建客户端:
常用方法:
DatagramSocket:用于发送或接收数据报包当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象。服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收。DatagramSocket有两种常用的构造函数。一种是无需任何参数的,常用于客户端;另一种需要指定端口,常用于服务器端。如下所示:1DatagramSocket():构造数据报套接字并将其绑定到本地主机上任何可用的端口。2DatagramSocket(int port):创建数据报套接字并将其绑定到本地主机上的指定端口。
UDP通信编程基本步骤:1创建客户端的DatagramSocket,创建时,定义客户端的监听端口。
2创建服务器端的DatagramSocket,创建时,定义服务器端的监听端口。3在服务器端定义DatagramPacket对象,封装待发送的数据包。4客户端将数据报包发送出去。5服务器端接收数据报包。
本章总结端口是虚拟的概念,并不是说在主机上真的有若干个端口。在www上,每一信息资源都有统一且唯一的地址,该地址就叫URL(Uniform Resource Locator),它是www的统一资源定位符。TCP与UDP的区别TCP是面向连接的,传输数据安全,稳定,效率相对较低。UDP是面向无连接的,传输数据不安全,效率较高。Socket通信是一种基于TCP协议,建立稳定连接的点对点的通信。网络编程是由java.net包来提供网络功能。InetAddress:封装计算机的IP地址和DNS(没有端口信息!)。InetSocketAddress:包含IP和端口,常用于Socket通信。URL:以使用它的各种方法来对URL对象进行分割、合并等处理。基于TCP协议的Socket编程和通信“请求-响应”模式:Socket类:发送TCP消息。ServerSocket类:创建服务器。UDP通讯的实现DatagramSocket:用于发送或接收数据报包。常用方法:send()、receive()、close()。DatagramPacket:数据容器(封包)的作用常用方法:构造方法、getAddrress(获取发送或