端口
- IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。
- 端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用 程序。
- 端口范围0—65535,16位整数
- Oracle、MySQL、QQ、迅雷等应用程序都有自己的端口。
- 分类:公任端口,0-1023,比如80端口分配给WWW,21端口分配给FTP,8080端口给tomcat,1521端口给oracle,3306端口给MySQL;注册端口,1024-49151,分配给用户进程或应用程序,可以在程序中使用;动态/私有端口,49152-65535。
- TCP和UDP有不同的端口,即对于同一个端口号,在TCP和UDP中功能作用是不同的,同一协议下注意对同一端口号的使用。
端口与IP的关系
IP地址好比每个人的地址(门牌号),端口好比是房间号。必须同时指定IP地址和端口号才能够正确的发送数据。
控制台命令查看端口状态
netstat -ano //查看所有端口,找到端口
netstat -aon|findstr "808" //查看指定端口,找到对应的进程
tasklist|findstr "2676" //查看2676号进程,找到对应的程序
查看具体程序,可使用任务管理器查看PID
InetSocketAddress
code:
import java.net.InetSocketAddress;
/**
* 测试使用端口
* 主要是对InetSocketAddress类的使用
* @author dxt
*
*/
public class PortTest {
public static void main(String[] args){
//包含端口
//1. 用地址创建
InetSocketAddress socketAddress = new InetSocketAddress("127.0.0.1", 8080);
//2.用域名创建
InetSocketAddress socketAddress2 = new InetSocketAddress("localhost", 9000);
System.out.println(socketAddress.getHostName());
System.out.println(socketAddress2.getAddress());
System.out.println(socketAddress.getPort());
}
}
result: