初始网络编程
什么是网络编程?
在网络通信协议下,不同计算机上运行的程序,进行的数据传输。
应用场景:即时通信、网游对战、金融证券、
国际贸易、邮件、等等。
不管是什么场景,都是计算机跟计算机之间通过网络进行数据传输。
●Java中可以使用java.net包下的技术轻松开发出常见的网络应用程序。
常见的软件架构
BS架构:
BS架构的优缺点
1.不需要开发客户端,只需要页面+服务端
2.用户不需要下载,打开浏览器就能使用
3.如果应用过大,用户体验受到影响
cs架构:
CS架构的优缺点
1.画面可以做的非常精美,用户体验好
2.需要开发客户端,也需要开发服务端
3.用户需要下载和更新的时候太麻烦
小结:
网络编程三要素
确定对方电脑在互联网上的地址也就是——ip
确定接收数据的软件也就是——端口号
确定网络传输的规则——协议
网咯三要素:
IP:设备在网络中的地址,是唯一的标识。
端口号:应用程序在设备中唯一的标识。
协议:数据在网络中传输的规则,常见的协议有UDP、TCP、http、https、ftp。
小结
网络编程三要素—IP
IP全称:
Internet Protocol,是互联网协议地址,也称IP地址。是分配给上网设备的数字标签。
通俗理解:
上网设备在网络中的地址,是唯一的
常见的IP分类为:
IPV4、IPV6
解决ipv4不够用的问题出现了ipv6但主流还是ipv4
总结
iPV4的地址分类形式
因为ipv6没有普及,现在怎么解决ipv4不够用的问题。
●公网地址(万维网使用)和私有地址(局域网使用)。
●192.168.开头的就是私有址址,范围即为192.168.0.0--192.168.255.255,专门为组织机构内部使用,以此节省IP
特殊IP地址
127.0.0.1,也可以是localhost:是回送地址也称本地回环地址,也称本机IP,永远只会寻找当前所在本机。
常用的CMD命令:
ipconfig:查看本机IP地址
ping:检查网络是否连通
小结
IP的类InetAddress的使用
网络编程三要素—端口号
端口号:
应用程序在设备中唯一的标识。
端口号:由两个字节表示的整数,取值范围:0~65535
其中0~1023之间的端口号用于一些知名的网络服务或者应用。
我们自己使用1024以上的端口号就可以了。
注意:一个端口号只能被一个应用程序使用。
网络编程三要素—协议
协议
UDP协议
- 用户数据报协议(User Datagram Protocol)
- UDP是面向无连接通信协议。
速度快,有大小限制一次最多发送64K,数据不安全,易丢失数据
面向无连接:意思是没有先检查俩台设备是否连接上就开始发送,有可能俩台电脑没 有连接发送失败。
TCP协议
- 传输控制协议TCP(Transmission Control Protocol)
- TCP协议是面向连接的通信协议。
速度慢,没有大小限制,数据安全。
面向连接:意思是先检查俩台设备是否连接上,确保连接成功在发送。
UDP通信程序
UDP发送数据:
1.创建发送端的DatagramSocketi对象
2.数据打包(DatagramPacket)
3.发送数据
4.释放资源
UDP接受数据:
1.创建接收端的DatagramSocketi对象
2.接收打包好的数据
3.解析数据包
4.释放资源
细节:
UDP的三种通信方式(代码实现)
代码实现:
发送端:
接收端:
TCP网络协议
TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象
通信之前要保证连接已经建立
通过Socket产生IO流来进行网络通信
客户端:
服务端:
代码实现:
发送数据(客户端):
接受数据(服务端)
TCP中文乱码问题
用转换流将字节流转换为字符流。
TCP通信程序(三次握手)(四次挥手)
三次握手:
四次挥手: