网络编程
在网络通信协议下,不同计算机上运行的程序,进行数据传输。
·应用场景:即时通信、网友对战、金融证券、邮件等等
·Java中可以使用Java.net包下的技术轻松开发出常见的网络应用程序
常见的软件架构:
CS:客户端服务端模式需要开发客户端,如:IDEA、网游
BS:浏览器服务端不需要开发客户端,适合移动互联网应用,可以在任何地方随时访问的系统
网络编程三要素
IP:设备在网络中的地址,是唯一标识
端口号:应用程序在设备中的唯一标识
协议:数据在网络中传输的规则,常见的协议有:UDP、TCP、http、https、ftp。
IP
全称:Internet Protocol,是互联网协议地址,也称IP地址。
常见分类:
IPv4:目前的主流方案,最多只有2^32个IP,目前已经用完了
IPv6:为了解决IPv4不够用而出现的,2^128个IP,可以为地球上的每一粒沙子都定义一个IP
注:IPv4的地址分类形式:
·公网地址(万维网使用)和私有地址(区域网使用)
·192.168.开头的就是私有地址,范围即为:192.168.0.0 — 192.168.255.255,专门为组织机构内部使用,一次节省IP
特殊IP地址
127.0.0.1,也可以是local host:是回送地址也称为本地回环地址,也称本机IP,永远只会寻找当前所在本机
建议:自己练习就写127.0.0.1
常用CMD命令
ipconfig:查看本机IP地址
ping:检查网络是否联通
端口号
由两个字节表示的整数,取值范围:0~65535
其中0-1023之间的端口用于一些知名的网络服务或者应用。
我们字节使用1024以上的端口号即可
注:一个端口号只能被一个应用程序使用
协议
UDP协议
·用户数据报协议
·UDP是面向无连通的通信协议
速度快,有大小限制,一次限制64k,数据不安全,易丢失数据
发送数据
1、创建发送端的DatagramSocket对象;
细节:
空参:在可用的端口中随机挑选一个
有参:指定端口号进行绑定
2、数据打包(Datagrampacket);
3、发送数据;
4、释放资源
接收数据
1、创建接收端的DatagramSocket对象;
细节:
一定要绑定端口,而且要与发送端的接口一致
2、接收打包好的数据;
3、解析数据包;
4、释放资源;
TCP协议
·传输控制协议TCP
·TCP协议是面向连通的通信协议
速度慢,没有大小限制,数据安全
是一种可靠的网络协议,它在通信的两端各建立一个Socet对象
通信之前要保证连接已经建立
通过Socke产生的IO流进行网络通信
发送数据
1、创建Socekt对象;
2、在连接通道中获取输出流;
3、释放资源;
接收数据
1、创建ServerSoketer对象;
2、监听客户端的连接;
Soketer accept();
3、从连通通道中获取输入流数据;
4、释放资源;
三次握手
作用:确保连接建立
1、客户端向服务器发送连接请求,等待服务器确认
2、服务器向客户端发送一个响应,告诉客户端收到了请求
3、客户端向服务器再次发送确认,连接建立
四次挥手
作用:确保连接断开,且数据处理完毕
1、客户端向服务器发送请求取消连接请求
2、服务器向客户端返回一个响应,表示收到取消请求
3、服务器向客户端发出确认取消信息
4、客户端再次发送确认消息,连接取消