1.3 IP 地址
ip 地址:InetAddress
- 唯一定位一台网络上的计算机
- 127.0.0.1(这是本机 IP)
- IP 地址的分类
ipv4:127.0.0.1(4个字节组成 每个字节 0 ~ 255 在 2019 年 用尽,北美 分配了 30亿ip,而亚洲只分配了 4 亿ip,所以亚洲 服务器的申请和域名的备案 是很费劲很费劲的…)
ipv6:fe80::e4a3:6cf7:4423:fc30%3(8个无符号整数,一共128位。可分配大约340282366920938460000000000000000000000.00 个IP 地址)
公网(互联网)- 内网(局域网)
- 192.168.xx.xx.z 这就是局域网,专门给组织内部使用的。
- 公网
1.3.1 获取 IP
我们会用到 一个类,叫做 InetAddress。
package www.muquanyu.lesson01;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class InetAddressDemo {
public static void main(String[] args) {
try{
InetAddress getbyName = InetAddress.getByName("www.baidu.com");
System.out.println(getbyName);
System.out.println(InetAddress.getLocalHost());
System.out.println(getbyName.getAddress());
System.out.println(getbyName.getCanonicalHostName());
System.out.println(getbyName.getHostName());
System.out.println(getbyName.getHostAddress());
}catch(UnknownHostException e)
{
e.printStackTrace();
}
}
}
1.4 Port 虚拟端口
虚拟端口实际上就是 计算机上一个程序的进程:
- 只不过这个程序的进程 作用 和 普通程序的进程 不一样
- 端口这个进程是 负责 与外界通讯交流的
- 端口可以区分 软件
- 端口(进程)被规定 是 0 ~ 65535 个
- TCP/UDP:65535 * 2 (每个协议下 都应该有这些个端口可开辟!)
- TCP:80 UDP:80(不同的协议 可以在 同一个端口下。)
- 端口分类
- 公有端口 0 ~ 1023(一些协议端口,系统用到的端口,尽量不要用这里的端口)
Http 的端口是 803
Https 的端口是 443
FTP:21
Telent:23
- 程序注册的端口:1024 ~ 49151(我们平常的程序就是分配 到这些端口的)
-Tomcat:8080
- MySQL:3306
- Oracle:1521
- 动态、私有 端口:49152 ~ 65535(尽量也不要用这里的端口)
- IDEA 的 63342
我们可以通过 netstat -ano 来查看 当前所有的端口。
我们可以通过 tasklist|findstr “进程名称或进程ID” 来查看 这个进程!(| 符号 叫做 管道符,是先把后面的指令执行的逻辑,放到前面指令里面的操作。)
1.4.1 Socket 套接字
套接字(Socket)= IP地址 + 端口号(Port Number)
网络通信就是靠 彼此的套接字 来识别的。
package www.muquanyu.lesson01;
import java.net.InetSocketAddress;
public class InetSocketAddressDemo {
public static void main(String[] args) {
InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 8080);
System.out.println(inetSocketAddress);
System.out.println(inetSocketAddress.getAddress());
System.out.println(inetSocketAddress.getHostName());
System.out.println(inetSocketAddress.getPort());
}
}
我们的 软件 是怎么 找到 别人电脑上的 软件,然后 进行通讯的呢?
答:就是 用我们电脑上的软件,找到 其它人电脑 上的软件的 接口呀。然后 传输数据 进去。如果 该软件 有 接收和处理 该数据的代码,那就OK了。