一、介紹:
要進行網路傳輸,在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
關閉輸出
四、連結: