前往
大廳
主題

【JAVA筆記】網路傳輸(Socket)

LF(小魚) | 2021-01-17 00:28:03 | 巴幣 0 | 人氣 328

一、介紹:
要進行網路傳輸,在Java裡最簡單的方式就是使用Socket了,至於Socket詳細運作原理就自行上網查詢,這裡只講解使用的部分

既然要傳輸資訊,當然要先有一個伺服器(Server)嘛,那就是ServerSocket,用法如下,傳入值放入port就可以了,port的允許值從1024到65535,至於原因自己查

現在有了伺服端了,也要有個個人端來連接嘛,用法如下,傳入值放入ip地址及port即可
備註:127.0.0.1指本機

ServerSocket不能直接與Socket溝通,那我就請ServerSocket建立一個可以與個人端溝通的Socket就好了

要注意的是,一個伺服的Socket對一個個人的Socket,如果要與複數個個人端溝通,就必須請ServerSocket建立更多的Socket來與其他的個人端溝通,並且,要先使用ServerSocket.accept(),才可以在個人端呼叫new Socket("ip address", port);,否則個人端將會找不到伺服器
備註:呼叫ServerSocket.accept()時,程式會等到接收到個人端的連結才會繼續動作

(伺服端與個人端溝通另開一篇說明)

二、方法(ServerSocket)(只寫重要的):
accept() throws IOException : Socket
    建立一個與個人端溝通的Socket
close() throws IOException : void
    關閉伺服器
getSoTimeout() throws IOException : int
    獲取So Timeout時間
isClosed() : boolean
    是否已被關閉
setSoTimeout(int timeout) throws SocketException : void
    設定So Timeout時間(毫秒)(0為關閉)

三、方法(Socket)(只寫重要的)
close() throws IOException : void
    關閉Socket
getInputStream() throws IOException : InputStream
    獲取輸入流
getOutputStream() throws IOException : OutputStream
    獲取輸出流
getPort() : int
    獲取連接埠(port)
getSoTimeout() throws SocketException : int
    獲取So Timeout時間
isClosed() : boolean
    是否已被關閉
isConnected() : boolean
    是否已連接
isInputShutdown() : boolean
    輸入是否被關閉
isOutputShutdown() : boolean
    輸出是否被關閉
getKeepAlive() throws SocketException : boolean
    獲取是否SO_KEEPALIVE是否被啟用
setKeepAlive(boolean on) throws SocketException : void
    設定SO_KEEPALIVE是否啟用
setSoTimeout(int timeout) throws SocketException : void
    設定So Timeout時間(毫秒)(0為關閉)
shutdownInput() throws IOException : void
    關閉輸入
shutdownOutput()throws IOException : void
    關閉輸出

四、連結:

創作回應

相關創作

更多創作