【java】網絡編程之端口類(三)

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,輸入查看所有端口命令
在這裏插入圖片描述
查看端口具體情況和對應的應用程序
在這裏插入圖片描述

InetSocketAddress

在這裏插入圖片描述
InetSocketAddress是java封裝端口的類。它的構造方法:

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

常用的方法:
在這裏插入圖片描述

測試例子

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());
	}

}

結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章