第十三讲:网络编程
一.预习笔记
1.网络通信协议
计算机网络:将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件和网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
网络通信协议:通过计算机网络可以实现多台计算机的连接,但是不同计算机的操作系统和硬件体系结构不同,为了提供通信支持,位于同一个网络中的计算机在进行连接和通信时必须遵守一定的规则,这个规则就被称为网络通信协议。
协议种类:目前最为广泛的TCP/IP(传输控制协议/互联网协议)、UDP(用户数据报协议)、ICMP(控制报文协议)
TCP/IP协议四层:链路层、网络层、传输层、应用层
链路层:又称网络接口层,负责监视数据在主机和网络之间的交互
网络层:又称网络互联层,是整个TCP/IP协议的核心,主要用于将传输的数据进行分组,将分组数据发送到目标计算机或网络
传输层:主要完成网络程序的通信,在进行网络通信时,既可以采用TCP,也可以采用UDP
应用层:主要负责应用程序的协议
IP地址:一台计算机的唯一标识符
IPv4:IP地址的版本号,由4个字节大小的二进制数来表示,为了便于记忆通常使用一个十进制数据来表示一个字节,例:192.168.3.54
IP地址分类:IP地址总共分为5类,常用的有3类
A类地址:由第一段的网络地址和其余三段的主机地址组成,范围是1.0.0.0到127.255.255.255
B类地址:由前两段的网络地址和其余两段的主机地址组成,范围是128.0.0.0到191.255.255.255
C类地址:由前三段的网络地址和最后一段段的主机地址组成,范围是192.0.0.0到223.255.255.255
本机地址:127.0.0.1
通过IP地址可以连接到指定的计算机,但如果想要访问计算机中的某个应用程序,还需要指定端口号。端口号是用两个字节(16位的二进制)表示的,它的取值范围是0-65535,其中0-1023的端口号是由操作系统的网络服务占用
InetAddress
UDP:无连接通信协议,在数据传输时发送端与接收端不需要建立逻辑连接
TCP/IP:面向连接的协议,在传输数据前,现在发送端和接收端建立逻辑连接,再传输数据
2.UDP通信
DatagramPacket:用于封装UDP通信中发送或者接收的数据
DatagramSocket:发送和接收DatagramPacket数据包![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/143ce86bbdb69a0091d787396ff7e945.png)
UDP通信步骤:先运行接收端,再运行发送端
接收端步骤:1.定义接收数据对象 DatagramSocket ds=new DatagramSocket(8586); —接收来自于8586端口的数据 2.定义封装数据对象 DatagramPacket dp=new DatagramPacket(b,b.length);—将接收的数据保存在byte数组b中 3.等待接收数据 ds.receive(dp); 4.输出打印数据 System.out.println(“收到的消息是:”+new String(dp.getData()));
发送端步骤:1.定义发送数据的对象 DatagramSocket ds=new DatagramSocket(3001); 2.定义封装数据对象 DatagramPacket dp=new DatagramPacket(b,b.length,Inet4Address.getByName(“localhost”),8586); 3.发送数据 ds.send(dp);
无限发送:
3.TCP通信
TCP通信与UDP通信一样,可以实现两台计算机之间的通信,但TCP通信的两端需要创建Socket对象。TCP通信与UDP通信的区别在于,UDP中只有发送端和接收端;不分客户端和服务器端,计算机之间可以任意发送数据;而TCP通信是严格区分客户端和服务器端的,在通信时,必须先由客户端去连接服务器端才能实现通信,服务器端不可以主动连接客户端,并且服务器端程序需要事先启动,等待客户端的连接
Java提供了两个用于实现TCP程序的类,一个是ServerSocket,用于表示服务器端;另一个是Socket类,表示客户端。
TCP服务端
TCP客户端
Tcp通信
二.课堂笔记
三.课后回顾
–仰望星空,脚踏实地;以梦为马,不负韶华