Socket與ServerSocket類構造方法與API

Socket類

概述:

socket可以使一個應用從網絡中讀取和寫入數據,不同計算機上的兩個應用可以通過連接發送和接受字節流,當發送消息時,你需要知道對方的ip和端口,在java中,socket指的是java.net.Socket類。

構造方法:

ServerSocket() 創建一個綁定服務器套接字
ServerSocket(int port) 創建一個服務器套接字,綁定到指定的端口
ServerSocket(int port, int backlog) 創建一個服務器套接字,並將其綁定到指定的本地端口號,並使用指定的積壓
ServerSocket(int port, int backlog, InetAddress bindAddr) 用指定的端口創建一個服務器,聽積壓,和本地IP地址綁定

API:

Socket accept() 監聽要對這個套接字作出的連接並接受它
void bind(SocketAddress endpoint) ServerSocket綁定到一個特定的地址(IP地址和端口號)
void bind(SocketAddress endpoint, int backlog) ServerSocket綁定到一個特定的地址(IP地址和端口號)
void close() 關閉這個套接字。
ServerSocketChannel getChannel() 返回與此套接字關聯的獨特的 ServerSocketChannel對象,如果任何
InetAddress getInetAddress() 返回此服務器套接字的本地地址
int getLocalPort() 返回此套接字正在偵聽的端口號
SocketAddress getLocalSocketAddress() 返回此套接字綁定到的端點的地址
int getReceiveBufferSize() 得到這個 ServerSocket的 SO_RCVBUF期權的價值,即該緩沖區的大小,將用於接受來自這 ServerSocket插座
boolean getReuseAddress() 如果 SO_REUSEADDR啟用
int getSoTimeout() 檢索設置 SO_TIMEOUT
protected void implAccept(Socket s) 子類使用此方法重載ServerSocket()返回自己的子類的插座
boolean isBound() 返回的ServerSocket綁定狀態
boolean isClosed() 返回的ServerSocket關閉狀態
void setPerformancePreferences(int connectionTime, int latency, int bandwidth) 設置此ServerSocket性能偏好
void setReceiveBufferSize(int size) 設置一個默認值為提出接受這 ServerSocket插座 SO_RCVBUF選項
void setReuseAddress(boolean on) 啟用/禁用 SO_REUSEADDR套接字選項
static void setSocketFactory(SocketImplFactory fac) 設置服務器套接字實現工廠為應用程序。
void setSoTimeout(int timeout) 啟用/禁用 SO_TIMEOUT以指定的超時時間,以毫秒為單位
String toString() 返回此套接字作為 String實現的地址與端口

ServerSocket類

概述:

Socket類代表一個客戶端套接字,即任何時候連接到一個遠程服務器應用時構建所需的socket。現在,要實現一個服務器應用,需要不同的做法。服務器需隨時待命,因為不知道客戶端什麼時候會發來請求,此時,我們需要使用ServerSocket,對應的是java.net.ServerSocket類。

ServerSocket與Socket不同,ServerSocket是等待客戶端的請求,一旦獲得一個連接請求,就創建一個Socket示例來與客戶端進行通信。

構造方法:

Socket() 創建一個連接的套接字,與socketimpl系統默認的類型。
Socket(InetAddress address, int port) 創建一個流套接字,並將其與指定的IP地址中的指定端口號連接起來。
Socket(InetAddress host, int port, boolean stream) 過時的。
使用UDP傳輸DatagramSocket。
Socket(InetAddress address, int port, InetAddress localAddr, int localPort) 創建一個套接字,並將其與指定的遠程端口上的指定的遠程地址連接起來。
Socket(Proxy proxy) 創建一個連接的套接字類型,指定代理,如果有,應該使用無論任何其他設置。
protected Socket(SocketImpl impl) 創建一個用戶指定的socketimpl連接插座。
Socket(String host, int port) 創建一個流套接字,並將其與指定的主機上的指定端口號連接起來。
Socket(String host, int port, boolean stream) 過時的。
使用UDP傳輸DatagramSocket。
Socket(String host, int port, InetAddress localAddr, int localPort) 創建一個套接字,並將其連接到指定的遠程端口上的指定的遠程主機上

API:

void bind(SocketAddress bindpoint) 將套接字綁定到本地地址。
void close() 關閉這個套接字。
void connect(SocketAddress endpoint) 將此套接字連接到服務器。
void connect(SocketAddress endpoint, int timeout) 將此套接字與指定的超時值連接到服務器。
SocketChannel getChannel() 返回與此套接字關聯的獨特的 SocketChannel對象,如果任何。
InetAddress getInetAddress() 返回套接字連接的地址。
InputStream getInputStream() 返回此套接字的輸入流。
boolean getKeepAlive() 如果 SO_KEEPALIVE啟用。
InetAddress getLocalAddress() 獲取綁定的套接字的本地地址。
int getLocalPort() 返回此套接字綁定的本地端口號。
SocketAddress getLocalSocketAddress() 返回此套接字綁定到的端點的地址。
boolean getOOBInline() 如果 SO_OOBINLINE啟用。
OutputStream getOutputStream() 返回此套接字的輸出流。
int getPort() 返回此套接字連接的遠程端口號。
int getReceiveBufferSize() 得到這個 Socket的 SO_RCVBUF選項的值,是由平臺用於該 Socket輸入緩沖區的大小。
SocketAddress getRemoteSocketAddress() 返回此套接字連接的端點的地址,或如果它是無關的 null。
boolean getReuseAddress() 如果 SO_REUSEADDR啟用。
int getSendBufferSize() 得到這個 Socket的 SO_SNDBUF期權價值,即緩沖區的大小由平臺用於輸出在這 Socket。
int getSoLinger() 返回設置 SO_LINGER。
int getSoTimeout() 返回設置 SO_TIMEOUT。
boolean getTcpNoDelay() 如果 TCP_NODELAY啟用。
int getTrafficClass() 獲取從這個套接字發送的數據包的IP頭中的業務類或服務類型
boolean isBound() 返回套接字的綁定狀態。
boolean isClosed() 返回套接字的關閉狀態。
boolean isConnected() 返回套接字的連接狀態。
boolean isInputShutdown() 返回套接字連接的讀半是否關閉。
boolean isOutputShutdown() 返回套接字連接的寫是否關閉的是否關閉。
void sendUrgentData(int data) 在套接字上發送一個字節的緊急數據。
void setKeepAlive(boolean on) 啟用/禁用 SO_KEEPALIVE。
void setOOBInline(boolean on) 啟用/禁用 SO_OOBINLINE(TCP緊急數據收據)默認情況下,此選項是禁用TCP套接字上接收緊急數據是默默丟棄。
void setPerformancePreferences(int connectionTime, int latency, int bandwidth) 設置此套接字的性能首選項。
void setReceiveBufferSize(int size) 集 SO_RCVBUF選項,這 Socket指定值。
void setReuseAddress(boolean on) 啟用/禁用 SO_REUSEADDR套接字選項。
void setSendBufferSize(int size) 設置這個 Socket指定值的 SO_SNDBUF選項。
static void setSocketImplFactory(SocketImplFactory fac) 設置客戶端套接字實現工廠的應用程序。
void setSoLinger(boolean on, int linger) 啟用/禁用 SO_LINGER與指定的逗留的時間秒。
void setSoTimeout(int timeout) 啟用/禁用 SO_TIMEOUT以指定的超時時間,以毫秒為單位。
void setTcpNoDelay(boolean on) 啟用/禁用 TCP_NODELAY(禁用/啟用Nagle的算法)。
void setTrafficClass(int tc) 集交通類或從該套接字發送數據包的IP報頭字節型服務。
void shutdownInput() 將此套接字的輸入流放在“流結束”中。
void shutdownOutput() 禁用此套接字的輸出流。
String toString() 將這一 String插座

到此這篇關於Socket與ServerSocket類構造方法與API的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: