“Http是web的基石,Socket是网络通信的基石”
昨天回顾了下socket,在此对Socket进行简单的总结
【1】IP地址:唯一标识。
【2】协议:统一语言。
【3】端口号:区别不同程序通信。
IP地址:表示唯一主机。
IPV4,A,B,C,D类,,
64位,组成,,(目前提出IPV6还未普遍使用)
【物理层】:网线,双绞线,网卡
【数据链路层】:ARP,RARP
【网络层】: IP,ICMP,IGMP
【传输层】:TCP ,UDP,UGP
【应用层】:Telnet(23),FTP(21),SMTP,Http(80).
【端口号】:用于区分不同应用程序
范围,0-65535,其中0-1023系统保留
IP地址和端口号组成了Socket,Socket是网络上运行的程序之间双向通信链路的终结点,是TCP和UDP的基础
【1】InetAddress:用于标识网络上的硬件资源。
【2】URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据
【3】Sockets:使用TCP协议实现的网络通信的Socket相关的类
【4】Datagram:使用UDP协议,将数据保存在数据报中,通过网络协议进行通信
Tcp协议是面向连接,可靠的,有序的,以字节流的方式发送数据。
基于TCP协议实现网络通信的类
客户端的Socket类
服务器端的ServerSocket类
Socket通信实现步骤
【1】创建ServerSocket和Socket
【2】打开连接到Socket的输入/输出流
【3】按照协议对Socket进行读写操作
【4】关闭输入输出流,关闭Socket
【服务器端】
1.创建ServerSocket对象,绑定监听端口
2.通过accept()方法阻塞监听客户端请求
3.连接后,通过输入流读取客户端发送的请求信息
4.通过输出流相应客户。
【客户端】
1.创建Socket对象,指定需要连接的服务器的地址和端口号
2.连接建立后,通过输入流向服务器端发送请求信息
3.通过输入流获取服务器响应的信息。
4.关闭相关资源
【服务器】
1.服务器创建ServerSocket,循环调用accept()等待客户端连接
2.客户端创建一个Socket并请求和服务和服务器端连接
3.服务器接收客户端请求,创建Socket与该客户端建立专线连接
4。建立连接的两个Socket在一个单独的线程上对话
5.服务器端继续等待新的连接。
【客户端】
1.创建Socket对象,指定需要连接的服务器的地址和端口号
2.连接建立后,通过输入流向服务器端发送请求信息
3.通过输入流获取服务器响应的信息。
4.关闭相关资源
UDP协议(用户数据报协议)是无连接,不可靠,无序的
相关操作类,
DatagramPacket:表示数据报包
datagramSocet:进行端到端通信的类
【服务器】
1,创建DatagramSocket,指定端口号
2,创建DatagramPacket
3,接收客户端发送的数据信息
4,读取数据
【客户端】
1,定义发送信息
2,创建DatagramPacket,包含将要发送的信息
3,创建DatagramSocket
4,发送数据
【注意】
对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭,所以一般不用关闭流,直接关闭socket即可
【TCP通信传输对象】
将输入输出流封装成,ObjectOutStream
【TCP通信传输文件】
将输入输出流封装成BufferedOutputStream