【Java】网络编程
一、网络编程
1、定义
2、软件架构
3、总结
二、网络编程三要素
1、IP
(1)IPv4
采用32位地址长度,分为4组,
点分十进制:每组转成十进制,每一组的取值是0-255,没有负数。例如173.124.1.66
一共有不到43亿的IP,已经不够用了
(2)IPv6
128位地址长度,分为八组,一共有2^128个
冒分十六进制表示法:每一组转成十六进制,每组之间用:分开。连续的零可以用::两个冒号连续
(3)IPv4的地址分类形式
多个设备可以共享1个公网IP,再由路由器分给设备局域网IP。
(4)本机IP
127.0.0.1(localhost:),是回送地址,也称本地回环地址,永远只会寻找当前机所在本机。
(5)命令
- ipconfig:查看本机IP地址
- ping:检查网络是否连通
(6)InetAddress类
表示互联网协议(ip)地址;会先判断是4还是6版本的IP,没有对外提供构建方法,是能通过.getByName
2、端口号
3、协议
(1)UDP协议
不管是否连接成功,都会直接发送
(2)TCP协议
确保连接成功,才会发送数据
三、UDP协议
1、发送数据
打包打的是:要传输的数据的字节数组形式+字节数组的长度+要传送的IP地址+要穿送到的端口
2、接收数据
接收的时候,一定要绑定端口,而且绑定的端口必须与发送的端口一致。
3、三种通信方式
(1)单播:只给一台设备发送数据
以前的代码都是单播
(2)组播:给一组设备发送数据
例如发到224.0.0.0,这一组的设备都能接收到
发送:
接收:
(3)广播:给局域网中所有的设备发送数据
例如发到255.255.255.255,这个局域网的设备都能接收到
只需要在单播的基础上,把地址改成广播地址:255.255.255.255
四、TCP协议
提升效率可以再加个缓冲流: