网络编程(1)
概述
网络编程中有两个主要的问题:
- 如何准确的定位到网络上的一台或者多台主机
- 找到主机之后如何进行通信
网络编程中的要素
- IP和端口号
- 网络通信写协议
IP
IP地址:InetAddress
定位一台网络计算机
127.0.0.1:本机localhost
IP地址分类
- IPv4 /IPv6
- 公网-私网
package Net.lesson01;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class TestInetAddress {
public static void main(String[] args) throws UnknownHostException {
//查询本机地址
InetAddress inet1 = InetAddress.getByName("127.0.0.1");
System.out.println(inet1);
InetAddress inet3 = InetAddress.getByName("localhost");
System.out.println(inet3);
InetAddress inet4 = InetAddress.getLocalHost();
System.out.println(inet4);
//查询网站IP地址
InetAddress inet2 = InetAddress.getByName("www.baidu.com");
System.out.println(inet2);
//常用方法
System.out.println(inet2.getCanonicalHostName());
System.out.println(inet2.getHostAddress());
System.out.println(inet2.getHostName());
}
}
端口
不同进程有不同的端口号 用来区分不同软件
端口协议: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 "5900" #查看指定端口
tasklist|findstr "22492" #查看指定端口的进程
package Net.lesson01;
import java.net.InetSocketAddress;
public class TestInetSocketAddress {
public static void main(String[] args) {
InetSocketAddress inetSocketAddress = new InetSocketAddress("127.0.0.1", 22492);
System.out.println(inetSocketAddress);
}
}