网络编程
一,软件结构
- 1, C/S结构:全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ,迅雷等软件。
- 2,B/S结构:全程为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌,火狐等。
二,网络通讯协议
- 1.网络通讯协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式,传输速率,传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。
- 2.TCP/IP协议:传输控制协议/因特网互联协议,是internet最基本,最广泛的协议,它定义了计算机如何来连入因特网,以及数据如何在他们之间传输的标准。它的内部包含一系列的用于处理数据通信的协议,并采集了4层的分层模型,每一次都呼叫他的下一层所提供的协议来完成自己的需求。
三,协议分类
- 1.UDP:用户数据协议,UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。
- TCP:传输控制协议。TCP协议是面向连接的通信协议。即传输数据前,在发送端和接收端建立逻辑连接,然后再传输数据。
- 三次握手:
- 第一次:客户端向服务器端发出连接请求,等待服务器确认
- 第二次:服务器端向客户端回发一个响应,通知客户端接收了连接请求
- 第三次:客户端再次向服务器端发送确认性息,确认连接
- 三次握手:
三,网络协议的三要素
- IP地址:互联网协议地址,俗称IP。IP地址用来给一个网络中的计算机设备做唯一的编号。
- IP地址分类:
- IPv4:是一个32位的二进制数,通常被分为4个字节,表示成a.b.c.d的形式,例如192.168.65.100.其中a,b,c,d都是0~255之间的十进制整数,那么最多可以表示42亿个
- IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,是的IP的分配越发紧张。为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进制数,表示成ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,号称可以为全世界的每一粒沙子编上一个网址
- 端口号:是一个逻辑端口,我们无法直接看到,可以使用一些软件查看端口号。 当我们使用网络软件一打开,那么操作系统就会为网络软件分配一个随机的端口号,或者网络软件在打开的时候和系统要指定的端口号,端口号是由两个字节组成,取值范围在0~65535之间
四,TCP通信协议
Socket类:该类实现客户端套接字,套接字指的是两台设备之间通讯的端点。
- 实现步骤:
- 1.创建一个客户端对象Socket,构造方法绑定服务器的IP地址和端口号
- 2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
- 3.使用网络字节输出流OutputStream对象中的方法write,给服务器发送数据
- 4.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
- 5.使用网络字节输入流InputStream对象中的方法read,读取服务器回写的数据
- 6.释放资源(Socket)
ServerSocket:此类实现服务器套接字
- 服务器的实现步骤:
- 1.创建服务器ServerSocket对象和系统要指定的端口号
- 2.使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket
- 3.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
- 4.使用网络字节输入流InputStream对象中的方法read,读取客户端发送的数据
- 5.使用Socket对象中的方法getOutputStream()获取网络字节输入流OutputStream对象
- 6.使用网络字节输出流OutputStream对象中的方法write,给客户端回写数据
- 7.释放资源(Socket,ServerSocket)