Java 网络编程
网络编程
网络编程:计算机跟计算机之间通过网络进行数据传送
BS(Browser/Server)架构:只需要一个浏览器,用户通过不同的网站,客户访问不同的服务器
特点:方便
不需要开发客户端,只需要页面+服务端
用户不需要下载,打开浏览器就能使用
如果应用过大,用户体验受到影响
CS(Client/Server)架构:在用户本地需要下载安装客户端程序,在远程有一个服务器端程序
特点:
画面可以做的非常精美,用户体验好
需要开发客户端,也需要开发服务端
用户需要下载和更新的时候比较麻烦
网络编程三要素
确定对方电脑在互联网上的地址IP
确定接受数据的软件:端口号
确定网络传输的规则:协议
IP:设备在网络中的地址,是唯一的标识
IP全称:Internet Protocol,是互联网协议地址,也称IP地址,是分配给上网设备的数字标签
IPV4:全称Internet Protocol version 4,互联网通信协议第四版 采用32地址长度,分为4组,采用点分十进制表示法,如192.168.1.66
IPV6:全称Internet Protocol version 6,互联网通信协议第六版 IPV4不够用,推出了IPV6,采用128位地址长度,分为8组,冒分十六进制 如2001:D88:0:23:8:800:200C:417A,可以为地球上每一粒沙子都设定ip
IPv4的地址分类形式
公网地址(万维网使用)和私有地址(局域网使用)
192.168.开头的就是私有地址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用,以此节省IP
特殊IP地址:126.0.0.1,也可以是localhost,是回送地址也称本地会换地址,也称本机IP,永远只会寻找当前所在本机,不会经过路由器

端口号:应用程序在设备中唯一的标识
端口号:由两个字节表示的整数,范围065535
01023之间的端口号用于一些知名的网络服务或者应用,我们自己使用1024以上的端口号就可以了
注意:一个端口号只能被一个应用程序所使用
协议:数据在网络中传输的规则
计算机网络中,连接和通信的规则被称为网络通信协议
常见的协议有UDP,TCP,http,https,ftp
OSI参考模型:世界互联协议标准,全球通信规范,单模型过于理想化,未能在因特网上进行广泛推广
TCP/IP参考模型(或TCP/IP协议):事实上的国际标准 ](C:\Users\think\AppData\Roaming\Typora\typora-user-images\image-20230306221036101.png)
UDP协议
用户数据报协议(User Datagram Protocol)
UDP是面向无连接通信协议,速度快,有大小限制,一次最多发送64k,数据不安全,易丢失数据
发送数据
找快递公司:创建发送端的DatagramSocket对象
打包礼物:数据打包(DatagramPacket)
快递公司发送包裹:发送数据
付钱走人:释放资源
接收数据
找快递公司:创建接收端的DatagramSocket对象
接收箱子:接受打包好的数据
从箱子里面获取礼物:解析数据包
签收走人:释放资源
UDP的三种通信方式:
单播:一对一 以前的代码就是单播
组播:发送给一组 组播地址:224.0.0.0~239.255.255.255,其中224.0.0.0
239.255.255.255 其中224.0.0.0334.0.0.255为预留的组播地址
广播:发送给所有电脑 广播地址:255.255.255.255 代码只需修改单播代码的ip为255.255.255.255即可
TCP协议
传输控制协议TCP(Transmission Control Protocol)
TCP协议是面向连接的通信协议,速度慢,没有大小限制,数据安全
TCP通信协议在通信的两端各建立一个Socket对象,通信之前要保证连接已经建立,通过Socket产生IO流来进行网络通信
客户端:
创建客户端的Socket对象(Socket)与指定服务端连接
获取输出流,写数据
释放资源
服务器:
创建服务器端的Socket对象(ServerSocket)
监听客户端连接,返回一个Socket对象
获取输入流,读数据,并把数据显示在控制台
释放资源
TCP三次握手:确保连接建立
客户端想服务器发出连接请求,等待服务器确认
服务器想客户端返回一个响应,告诉客户端受到了请求
客户端想服务器再次发出确认信息,连接建立
TCP四次挥手:确保连接断开,且数据处理完毕
客户端向服务器发出取消连接请求
服务器向客户端返回一个响应,表示收到客户端取消请求 服务器将最后的数据处理完毕
服务器向客户端发出确认取消信息(多了这么一步)
客户端再次发送确认信息,连接取消