首頁  >  文章  >  Java  >  Java中關於Socket的方法與作用詳解

Java中關於Socket的方法與作用詳解

黄舟
黄舟原創
2017-09-06 09:52:121993瀏覽

1.java.net.Socket;套接字、封裝了TCP通訊協議,使用它可以基於TCP與遠端電腦上的服務端應用程式連結並進行通訊。
實例化Socket就是與伺服器端建立連線的過程。這裡需要傳入兩個參數來指定服務端位址資訊:
參數1:伺服器端電腦位址
參數2:運行在伺服器電腦上的服務端應用程式開啟的服務連接埠
透過IP可以找到服務端計算機,在通過連接埠可以連接到運行在服務端極端及上的服務端應用程式。由於實例化就是連線過程,若服務端咩有回應,這裡實例化Socket會拋出例外。
Socket提供方法:

OutputStream getOutputStream()

透過Socket取得的輸入流寫出的位元組都會透過網路傳送給遠端電腦。這裡就等於發送給服務端。
2. 運行在服務端的java.net.ServerSocket;
主要有兩個作用:
1.向系統申請對外的服務端口,客戶端Socket就是透過這個端口與伺服器程式建立連接的。
2.監聽該服務端口,一旦一個客戶端Socket透過該端口嘗試建立連接,serverSocket就會感知並實例化一個Socket與該客戶端進行通訊。
ServerSocket提供方法:

Socket accept()

此方法時一個阻塞方法,用於監聽服務端口,直到一個客戶端連接上為止。這裡會回傳一個Socket,透過這個Socket就可以與客戶端進行通訊了。
透過Socket取得輸入流,讀取的資料就是來自遠端電腦發送過來的資料。這裡相當於讀取的時客戶端發送過來的資料;

InputStream in = socket.getInputStream();

當使用緩衝流讀取一行來自客戶端發送過來的字串過程中,br.readLine方法會一直阻塞直到客戶端斷開連接,那麼客戶端的系統不同這裡的反應也不同。當Windows的客戶端斷開時,方法會拋出異常當Linux的客戶端斷開時方法會回傳null

以上是Java中關於Socket的方法與作用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn