网络编程:
在网络通信协议下不同计算机上运行的程序进行数据传输,java中可以使用java.net包下的技术轻松开发出常见的网络应用程序。
常见的软件架构:
C/S:Client/Server,在用户本地需要下载并安装客户端程序,在远程有一个服务器端程序,画面精美,用户体验好,需要开发服务端和客户端
B/S:Browser/Server,只需要一个浏览器,用户通过不同的网址访问不同的服务器,不需要开发客户端,只需要页面和服务端,用户不需要下载,打开浏览器即可使用;
网络编程三要素:
IP地址:设备在网络中的地址,是唯一的标识,是分配给网络设备的数字标识
IPV4:互联网通信协议第四版,采用32位地址长度,分为4组,每组8位,用一个十进制数表示,采用点分十进制;
特殊IP地址:127.0.0.1,是localhost,回送地址,本机IP,永远只会寻找当前所在本机
IPV6:互联网通信协议第六版,采用128位地址长度,分为8组,每组16位,用一个十六进制表示,采用冒号分十六进制表示,如果十六进制的表示形式中有多个连续的0,可以省略
端口号:应用程序在设备中唯一的标 识
协议:数据在网络中传输的规则,常见的有UDP,TCP,http,https,ftp
InetAddress的使用:
获取InetAddress对象:static InetAddress getByName(String host),确定主机名称的IP地址,主机名称可以是机器名称或者IP地址
获取此IP地址的主机名:String getHostName()
返回文本显示中的IP地址字符串:String getHostAddress()
端口号:
应用程序在设备中的唯一标识,由两个字节表示的整数,取值范围为0~65535,其中0~1023之间的端口号用于一些知名的网络服务或者应用,一个端口号只能被一个应用程序使用
协议:
在计算机网络中连接和通信的规则被称为网络通信协议
UDP协议:用户数据报协议,是面向无连接通信协议,速度快,有大小限制,一次最多发送64K,数据不安全,容易丢失数据
TCP协议:传输控制协议,是面向连接的通信协议,速度慢,没有大小限制,数据安全
UDP通信程序:
1.发送数据:
1).创建发送端的DatagramSocket对象:需要绑定端口,当使用空参时会从所有可用的端口中随机选择一个使用,当使用有参构造时指定端口号进行绑定
2).数据打包(DatagramPacket):dp = new DatagramPacket(bytes[],bytes[].length,inetAddress,port)
3).发送数据:ds.send(dp)
4).释放资源:ds.close()
2.接收数据:
1)创建接收端的DatagramSocket对象:接收的时候一定要绑定端口,而且绑定的端口一定要和发送的端口保持一致
2)接收打包好的数据:dp = new DatagramPacket(bytes[],bytes[].length,inetAddress,port),ds.receive(dp)
3)解析数据包:dp.getData(),dp.getlength(),dp.getAddress(),dp.getPort()
4)释放资源:ds.close()
UDP三种通信方式:
1.单播:一对一
2.组播:组播地址为224.0.0.0~239.255.255.255,其中224.0.0.0~224.0.0.255为预留的组播地址
3.广播:广播地址为255.255.255.255
TCP通信程序:
TCP通信是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,通信之前要保证连接已经建立,通过Socket产生IO流来进行网络通信。
客户端Socket():
1.创建客户端的Socket对象与指定的服务端连接:Socket(String host,int port);
2.获取输出流,写数据:OutputStream socket.getOutputStream()
3.释放资源:void close()
服务器ServerSocket():
1.创建服务器端的Socket对象:ServerSocket(int port)
2.监听客户端连接,返回一个Socket对象:Socket serversocket.accept()
3.获取输入流,读取数据,并把数据显示在控制台:InputSteam socket.getInputStream()
4.释放资源:void close()
三次握手:确保连接建立
1.客户端向服务器发出连接请求,等待服务器确认
2.服务器向客户端返回一个响应,告诉客户端收到了请求
3.客户端向服务器再次发出确认信息,连接建立
四次挥手协议:确保连接断开,且数据处理完毕
1.客户端向服务器发出取消连接请求
2.服务器向客户端返回一个响应,表示收到客户端取消请求
3.服务器将最后的数据处理完毕
4.服务器向客户端发出确认取消信息
5.客户端再次发送确认信息,连接取消