JAVA–网络编程
1.socket套接字编程
源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务
2.网络分层
3.网络三要素:
- IP地址
- 端口
- 协议:数据传递/交互的规则
(1)IP地址
IP及Internet Protocol网络之间互连的协议,分为IPv4和IPv6,在java中为InetAdress类
JAVA中获取IP地址:
//演示ip操作
public class InetAddressDemo {
public static void main(String[] args) throws IOException {
//给定主机名的情况下,获取IP地址
InetAddress ip = InetAddress.getByName("Aspartame");
//获取完整ip地址
System.out.println(ip);
System.out.println(ip.toString());
//获取主机名
System.out.println(ip.getHostName());
//获取IP地址
System.out.println(ip.getHostAddress());
//获取本机IP
System.out.println(InetAddress.getLocalHost());
//isReachable(10000):设置超时时间,IP是否可达,是否可以连接访问
System.out.println(InetAddress.getLocalHost().isReachable(10000));
}
}
(2)端口
是设备与外界通讯交流的出口。端口分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。
例如计算机中的80端口,21端口,23端口等。物理端口又称为接口,是可见端口,例如计算机背板的RJ45网口,交换机路由器
集线器等的RJ45端口。
协议端口:
如果把IP地址比作一间房子,端口就是出入之间房子的门。一个IP地址可以有2^16(65536)个端口。端口是通过端口号来标记的,
端口号只有整数,范围是0-65536
端口分类:
公认端口:0-1023,紧密地绑定与一些服务,通常这些端口的通讯明确表明某种服务的协议,比如80端口实际上总是HTTP通讯
注册端口:1024-49151,松散地绑定于一些服务。也就是有许多服务绑定于这些端口,这些端口同样用于许多其他目的。
动态或私有端口:49152-65535,理论上不应为服务分配这些端口,实际上,机器通常从1024起分配动态端口
结论:
在同一台电脑中端口不能重复,若重复,则报错端口冲突
如果需要自定义端口号,建议使用10000以上的
(3)协议
协议:网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有
遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
语法:即数据与控制信息的结构或格式
语义:即需要发出何种控制信息,完成何种动作以及做出何种响应
时序:即事件实现顺序的详细说明