Java socket異常

來源:互聯網
上載者:User

使用Java socket編寫程式時,通常會遇到幾種種異常:BindException、UnknownHostException、ConnectException、SocketTimeoutException。

BindException

會發生在Socket或ServerSocket的bind()操作中,如果無法與本機指定的IP地址或連接埠綁定,就會拋出此異常。

有兩種情況:

  • 指定的IP地址不在主機上
一台主機上可以裝N個網卡,可以有多個IP地址,在綁定的時候需要指定綁定到哪一個IP地址上,如果指定的IP地址不在當前主機上,會拋出異常。
  • 指定的port已被佔用
UnknownHostException

connect的時候,如果指定的主機名稱或IP地址無法識別,就會拋出此異常。

ConnectException

發生在connect中,有兩種情況:

  • 伺服器沒有監聽指定的連接埠
  • 伺服器socket指定的backlog隊列已滿
兩種情況的異常資訊相同:
java.net.ConnectException: Connection refused: connectat java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)at java.net.Socket.connect(Socket.java:529)at java.net.Socket.connect(Socket.java:478)

SocketTimeoutExceptionconnect方法可以指定逾時時間,如果在timeout之間沒有能串連成功,就會拋出此異常。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.