ServerSocket通過構造方法綁定連接埠

來源:互聯網
上載者:User

通過構造方法綁定連接埠是建立ServerSocket對象最常用的方式:

public ServerSocket(int port) throws IOException 

 

如果port參數所指定的連接埠已經被綁定,構造方法就會拋出IOException異常,但實際上拋出的異常是BindException。因為和網路有關的異常都是IOException類的子類,為了ServerSocket構造方法還可以拋出其他的異常,就使用了IOException。

 

如果port的值為0,系統就會隨機選取一個連接埠號碼,但隨機選取的連接埠意義不大,因為用戶端在串連伺服器時需要明確知道服務端程式的連接埠號碼。可以通過ServerSocket的toString方法輸出和ServerSocket對象相關的資訊。

 

ServerSocket serverSocket = new ServerSocket(1320);
System.out.println(serverSocket); 

運行結果:

ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=1320] 

 

 

 

addr是服務端綁定的IP地址,如果未綁定IP地址,這個值是0.0.0.0,在這種情況下,ServerSocket對象將監聽服務端所有網路介面的所有IP地址;port永遠是0;localport是ServerSocket綁定的連接埠,如果參數port值為0,localport是一個隨機選取的連接埠號碼。

 

在作業系統中規定1 ~ 1023為系統使用的連接埠號碼。連接埠號碼的最小值是1,最大值是65535。在Windows中使用者編寫的程式可以綁定連接埠號碼小於1024的連接埠,但在Linux/Unix下必須使用root登入才可以綁定小於1024的連接埠。

 

判斷本機開啟了哪些連接埠:基本原理是用ServerSocket來綁定原生連接埠,如果綁定某個連接埠時拋出BindException異常,就說明這個連接埠已經開啟,反之則這個連接埠未開啟。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.