IP
ip地址:InetAddress
-
唯一定位一台网络计算机
-
127.0.0.1 本机localhost
-
ip地址分类
- ipv4和ipv6
- ipv4 :长度为 32 位(4 个字节)
- ipv6 :长度为 128 位(16 个字节)
- 公网-私网
- A类地址范围:1.0.0.0~127.255.255.255
- B类地址范围:128.0.0.1~191.255.255.255。
- C类地址范围:192.0.0.1~223.255.255.255。
- D类地址范围:224.0.0.0~239.255.255.255
- E类地址范围:240.0.0.1~255.255.255.254
- ipv4和ipv6
-
域名:解决ip难记忆的问题
获取IP的方法:
public class TestInetAddress { public static void main(String[] args) throws UnknownHostException { InetAddress name = InetAddress.getByName("127.0.0.1"); System.out.println(name); InetAddress name1 = InetAddress.getByName("localhost"); System.out.println(name1); InetAddress name2 = InetAddress.getLocalHost(); System.out.println(name2); InetAddress[] name3 = InetAddress.getAllByName("www.baidu.com"); System.out.println(name3); InetAddress name4 = InetAddress.getByName("www.baidu.com"); System.out.println(name4); System.out.println(name4.getHostName());//获取域名 System.out.println(name4.getHostAddress());//获取ip } }
端口
表示计算机上的一个程序的进程
-
不同进程有不同的端口号
-
被规定0~65535
-
TCP UDP:相同协议下的端口不能相同,会有冲突
-
端口分类
-
共有端口0~1023
- HTTP:80
- HTTPS:443
- FTP:21
- Telent:23
-
程序注册端口:1024~49151,分配给用户或者程序的
- Tomcat:8080
- Mysql:3306
- Oracle:1521
-
动态,私有:49152~65535
netstat -ano 查看所有进程 netstat -ano|findstr "" 查看指定端口 tasklist|findstr "" 查看指定端口的进程
-
public class TestSocketInetAddress {
public static void main(String[] args) {
InetSocketAddress address = new InetSocketAddress("localhost", 8080);
System.out.println(address);
System.out.println(address.getAddress());//获取地址
System.out.println(address.getHostName());//获取域名
System.out.println(address.getPort());//获取端口
}
}
通信协议
TCP/IP协议簇:
- TCP:用户传输协议
- IP:用户数据报协议
- IP:网络互联协议
TCP和UDP对比
-
TCP
- 面向连接,稳定
- 三次握手,四次挥手
- 客户端,服务的
- 传输完成,释放连接,效率低
-
UDP
- 不稳定,不连接
- 不用确定连接
- 客户端,服务端没有明显的界限
如有不对的地方欢迎指出,共同进步!