网络编程
- 网络编程中存在两个主要的问题
- 如何准确的定位网络上的一台或多台主机
- 找到主机后如何进行通信
- 网络编程的要素
- IP和端口号
- 网络通信协议
IP
Java中的IP类:InetAddress
-
定位唯一一台网络上的计算机
-
127.0.0.1 :本机(localhost)
-
IP地址的分类
-
ipv4/ipv6
- IPV4:127.0.0.1 由4个字节组成
- IPV6:128位,8个无符号正数
-
公网(互联网)- 私网(局域网)
- ABCD类地址
- 192.168.xx.xx:专门给组织内部使用的
-
-
域名:记忆IP问题(IP很值钱!!!)
在Java中使用查找IP
public class IpAddressTest {
public static void main(String[] args) {
try {
//查找本机地址
InetAddress inetAddress1 = InetAddress.getByName("127.0.0.1"); // /127.0.0.1
System.out.println(inetAddress1);
InetAddress inetAddress2 = InetAddress.getByName("localhost"); // localhost/127.0.0.1
System.out.println(inetAddress2);
InetAddress inetAddress3 = InetAddress.getLocalHost(); // DESKTOP-LIM1T42/172.18.1.164
System.out.println(inetAddress3);
//查询网站地址
InetAddress inetAddress4 = InetAddress.getByName("www.baidu.com"); // www.baidu.com/180.101.49.11
System.out.println(inetAddress4);
//常用方法
System.out.println(inetAddress4.getAddress());
System.out.println(inetAddress4.getHostAddress());
System.out.println(inetAddress4.getCanonicalHostName());
System.out.println(inetAddress4.getHostName());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
端口
端口表示一个计算机上程序的进程
- 不同的进程有不同的端口号,用来区分软件
- 被规定0-65535
- TCP,UDP:单个协议下,端口号不能冲突,不同协议可以一样
- 端口分类
- 公有端口 0 - 1023
- HTTP : 80
- HTTPS : 443
- FTP : 21
- Telent : 23
- 程序注册端口 1024 - 49151
- Tomcat : 8080
- MySQL : 3306
- Oracle : 1521
- 动态、私有 :49152 - 65535
- 公有端口 0 - 1023
在Java中使用端口
public class InetSocketAddressTest {
public static void main(String[] args) {
InetSocketAddress isa = new InetSocketAddress("127.0.0.1",8080);
System.out.println(isa);
System.out.println(isa.getAddress());
System.out.println(isa.getHostName());
System.out.println(isa.getHostString());
System.out.println(isa.getPort());
}
}