日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Java網絡編程從入門到精通(19):套接字(Socke

系統 1913 0

本文為原創,如需轉載,請注明作者和出處,謝謝!

上一篇:
Java網絡編程從入門到精通(18):Socket類的getter和setter方法(2)

在Socket類中有很多方法在聲明時使用throws拋出了一些異常,這些異常都是IOException的子類。在Socket類的方法中拋出最多的就是SocketException,其余還有七個異常可供Socket類的方法拋出。這些異常的繼承關系如圖1所示。其中灰色背景框所描述的例外就是Socket類的方法可能拋出的異常。



圖1 異常類繼承關系圖

  • public class IOException extends Exception

這個異常是所有在Socket類的方法中拋出的異常的父類。因此,在使用Socket類時只要捕捉(catch)這個異常就可以了;當然,為了同時捕捉其它類中的方法的異常,也可以直接捕捉Exception。

  • public class SocketException extends IOException

這個異常在Socket類的方法中使用得最頻繁。它也代表了所有和網絡有關的異常。但如果要想知道具體發生的哪一類的異常,就需要捕捉更具體的異常了。

  • public class ConnectException extends SocketException

ConnectException異常通常發生在由于服務器忙而未響應或是服務器相應的監聽端口未打開。如下面的語句將拋出一個ConnectException異常。

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> Socketsocket = new Socket( " www.ptpress.com.cn " , 1234 );
  • public class BindException extends SocketException

這個異常在多個Socket或ServerSocket對象綁定在同一個端口,而且未打開SO_REUSEADDR選項時發生。如下面的四條語句將拋出一個BindException異常:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> Socketsocket1 = new Socket();
Socketsocket2
= new Socket();
socket1.bind(
new InetSocketAddress( " 127.0.0.1 " , 1234 ));
socket2.bind(
new InetSocketAddress( " 127.0.0.1 " , 1234 ));
  • public class NoRouteToHostException extends SocketException

這個異常在遇到防火墻或是路由無法找到主機的情況下發生。

  • public class UnknownHostException extends IOException

這個異常在域名不正確時被拋出。如下面的語句將拋出一個UnKnownHostException異常:

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> Socketsocket1 = new Socket( " www.ptpress123.com.cn " , 80 );
  • public class ProtocolException extends IOException

這個異常并不經常被拋出。由于不明的原因,TCP/IP的數據包被破壞了,這時將拋出ProtocolException異常。

  • public class SocketTimeoutException extends InterruptedIOException

如果在連接超時和讀取數據超時時間過后,服務器仍然未響應,connect或read方法將拋出SocketTimeoutException異常。

下一篇:
Java網絡編程從入門到精通(20):HTTP協議簡介



國內最棒的Google Android技術社區(eoeandroid),歡迎訪問!

《銀河系列原創教程》 發布

《Java Web開發速學寶典》 出版,歡迎定購

Java網絡編程從入門到精通(19):套接字(Socket)的異常


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 长子县| 武威市| 沿河| 明光市| 泸州市| 九龙城区| 宁明县| 花莲市| 太湖县| 松江区| 富川| 英吉沙县| 台中市| 昭觉县| 马山县| 永州市| 启东市| 永清县| 谢通门县| 隆回县| 高碑店市| 塔城市| 增城市| 台南县| 太原市| 拜泉县| 镇康县| 张家口市| 孟州市| 临夏市| 翁牛特旗| 德阳市| 漯河市| 嵊泗县| 安图县| 许昌市| 依安县| 广丰县| 民县| 屏东县| 康乐县|