【java】网络编程之端口类(三)

文章目录

    • 端口
    • InetSocketAddress
    • 测试例子

JavaAPI 入口:http://www.matools.com/api/java8

端口

Ip地址用来标识一台计算机,但是一台计算机上可能提供多种网络应用程序,而端口(Port)就是用来区分计算机上的应用程序。

软件意义上的端口是虚拟的概念,并不是指物理意义上的计算机有若干个端口(千疮百孔那种)。通过端口,可以在一个主机上运行多个网络应用程序,端口的表示是一个16位的二进制整数,2个字节,对应十进制的0到65535。按端口号可分为三类:

  • 公认端口(Well Known Ports):0-1023
  • 注册端口(Registered Ports):1024-49151
  • 动态/私有端口(Dynamic / Private Ports):49152-65535

自定义的端口号尽可能大,还有一些特定的端口号:

  • 常用的保留TCP端口号:HTTP 80,FTP 20/21,DNS 53,Telnet 23等
  • 常用的保留UDP端口号:DNS 53,BootP 67(server)/68(client),TFTP 69等
  • tomcat端口:8080
  • Oracle端口:1521
  • MySQL端口:3306
使用命令行查看端口情况:

查看所有端口:netstat -ano
查看指定端口:netstat -aon | findstr "5355"
查看指定进程:tasklist | findstr "2676"

打开cmd,输入查看所有端口命令

查看端口具体情况和对应的应用程序
【java】网络编程之端口类(三)_第1张图片

InetSocketAddress

【java】网络编程之端口类(三)_第2张图片
InetSocketAddress是java封装端口的类。它的构造方法:

  • new InetSocketAddress(地址,端口)
  • new InetSocketAddress(域名,端口)

常用的方法:
【java】网络编程之端口类(三)_第3张图片

测试例子

import java.net.InetSocketAddress;

public class PortTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 根据地址+端口号构造端口类
		InetSocketAddress socketAdd1 = new InetSocketAddress("127.0.0.1", 8080);
		// 根据域名+端口号构造端口类
		InetSocketAddress socketAdd2 = new InetSocketAddress("localhost", 8080);
		System.out.println("返回域名:"+socketAdd1.getHostName());
		System.out.println("返回地址:"+socketAdd1.getAddress());
		System.out.println("返回端口号:"+socketAdd2.getPort());
	}

}

结果:
【java】网络编程之端口类(三)_第4张图片

你可能感兴趣的:(java)