熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

JAVA 的Socket機制

2013-11-23 19:33:50  來源: Java核心技術 

  Socket機制用到的類有ServerSocketSocket等服務器端以監聽端口號和接受隊列長度為參數實例化ServerSocket類缺省的隊列長度是以accept()方法接收客戶的連接客戶端則直接以服務器的地址和監聽端口為參數實例化Socket類連接服務器缺省的連接方式是stream socket(區別於datagram socket)
   服務器端和客戶端調用getInputStream()和getOutputStream()方法得到輸入/輸出流如果以ObjectInputStream和ObjectOutputStream包裝Socket的輸入/輸出流要注意一點ObjectOutputStream類實例化時要向底層流寫入一個標識碼ObjectInputStream類相應的讀入該標識碼如果實例化的次序不當會引起死鎖建議客戶服務器兩端都先實例化ObjectOutputStream
   因為調用ServerSocket類的accept()方法和Socket輸入流的read()方法時會引起線程阻塞所以應該用setSoTimeout()方法設置超時缺省的設置是即超時永遠不會發生超時的判斷是累計式的一次設置後每次調用引起的阻塞時間都從該值中扣除直至另一次超時設置或有超時異常拋出比如某種服務需要三次調用read()超時設置為分鐘那麼如果某次服務三次read()調用的總時間超過分鐘就會有異常拋出如果要在同一個Socket上反復進行這種服務就要在每次服務之前設置一次超時
  
  
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/27095.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.