JavaSE——网络编程
1. 概述
-
网络编程:使用套接字(socket)来达到进程间通信,现在一般称为TCP/IP编程。
-
套接字(socket):网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字。
-
套接字原理机制:
通信的两端都有Socket。
网络通信其实就是Socket间的通信。
数据在两个Socket间通过IO传输。 -
网络编程三要素:①IP地址:InetAddress: 网络中设备的标识,不易记忆,可用主机名;②端口号: 用于标识进程的逻辑地址,不同进程的标识;③传输协议: 通讯的规则常见协议:TCP,UDP。
-
IP地址分类
A类:1.0.0.1—127.255.255.254
(1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在局域网络中的地址)
(2)127.X.X.X是保留地址,用做循环测试用的。
B类:128.0.0.1—191.255.255.254 172.16.0.0—172.31.255.255是私有地址。
C类:192.0.0.1—223.255.255.254 192.168.X.X是私有地址
D类: 224.0.0.1—239.255.255.254
E类: 240.0.0.1—247.255.255.254 -
参考模型:
2. InetAddress类
- 表示互联网协议 (IP) 地址,方便我们对IP地址的获取和操作。
- InetAddress.getByName(String host) //在给定主机名的情况下获取主机的IP地址
- inetAddress.getHostAddress() //获取IP
- inetAddress.getHostName() //获取主机名
- 实例:
-
运行结果:
3. 端口
- 端口表示计算机上的一个程序的进程;端口的表示是一个16位的二进制数,2个字节,对应十进制的0~65535;单个协议下,端口号不能冲突,多个协议下,端口号可以相同;
- 分类:公有端口:0~1023
程序注册端口:1024~49151,用户分配或者程序
动态、私有:49152~65535 -
实例:
-
运行结果:
4. TCP协议
- TCP协议:用户传输协议,是可靠连接,类似于打电话,只有等待对方接通的时候才可以交流,也就是确认了对方可以传信息,才会发送信息,三次握手,四次挥手,但是传输速度慢;
4.1 传输消息
-
实例:
客户端:
服务器: -
运行结果:
4.2 文件上传
-
实例:
客户端:
服务端: -
运行结果:
5. UDP协议
- UDP协议:用户数据报协议,是不可靠的,就像发短信,发出去就完事了,对方是否接收到就与自己无关,但是传输速度快;
-
实例:
用户端
服务器:
-
运行结果:
6. URL
-
统一资源定位符:定位资源的,定位互联网上的某一个资源
-
实例:
-
运行结果:
7. 下载资源
- 代码: