Socket與ServerSocket類構造方法與API
Socket類
概述:
socket可以使一個應用從網絡中讀取和寫入數(shù)據(jù),不同計算機上的兩個應用可以通過連接發(fā)送和接受字節(jié)流,當發(fā)送消息時,你需要知道對方的ip和端口,在java中,socket指的是java.net.Socket類。
構造方法:
ServerSocket() | 創(chuàng)建一個綁定服務器套接字 |
ServerSocket(int port) | 創(chuàng)建一個服務器套接字,綁定到指定的端口 |
ServerSocket(int port, int backlog) | 創(chuàng)建一個服務器套接字,并將其綁定到指定的本地端口號,并使用指定的積壓 |
ServerSocket(int port, int backlog, InetAddress bindAddr) | 用指定的端口創(chuàng)建一個服務器,聽積壓,和本地IP地址綁定 |
API:
Socket accept() | 監(jiān)聽要對這個套接字作出的連接并接受它 |
void bind(SocketAddress endpoint) | ServerSocket綁定到一個特定的地址(IP地址和端口號) |
void bind(SocketAddress endpoint, int backlog) | ServerSocket綁定到一個特定的地址(IP地址和端口號) |
void close() | 關閉這個套接字。 |
ServerSocketChannel getChannel() | 返回與此套接字關聯(lián)的獨特的 ServerSocketChannel對象,如果任何 |
InetAddress getInetAddress() | 返回此服務器套接字的本地地址 |
int getLocalPort() | 返回此套接字正在偵聽的端口號 |
SocketAddress getLocalSocketAddress() | 返回此套接字綁定到的端點的地址 |
int getReceiveBufferSize() | 得到這個 ServerSocket的 SO_RCVBUF期權的價值,即該緩沖區(qū)的大小,將用于接受來自這 ServerSocket插座 |
boolean getReuseAddress() | 如果 SO_REUSEADDR啟用 |
int getSoTimeout() | 檢索設置 SO_TIMEOUT |
protected void implAccept(Socket s) | 子類使用此方法重載ServerSocket()返回自己的子類的插座 |
boolean isBound() | 返回的ServerSocket綁定狀態(tài) |
boolean isClosed() | 返回的ServerSocket關閉狀態(tài) |
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) | 設置服務器套接字實現(xiàn)工廠為應用程序。 |
void setSoTimeout(int timeout) | 啟用/禁用 SO_TIMEOUT以指定的超時時間,以毫秒為單位 |
String toString() | 返回此套接字作為 String實現(xiàn)的地址與端口 |
ServerSocket類
概述:
Socket類代表一個客戶端套接字,即任何時候連接到一個遠程服務器應用時構建所需的socket?,F(xiàn)在,要實現(xiàn)一個服務器應用,需要不同的做法。服務器需隨時待命,因為不知道客戶端什么時候會發(fā)來請求,此時,我們需要使用ServerSocket,對應的是java.net.ServerSocket類。
ServerSocket與Socket不同,ServerSocket是等待客戶端的請求,一旦獲得一個連接請求,就創(chuàng)建一個Socket示例來與客戶端進行通信。
構造方法:
Socket() | 創(chuàng)建一個連接的套接字,與socketimpl系統(tǒng)默認的類型。 |
Socket(InetAddress address, int port) | 創(chuàng)建一個流套接字,并將其與指定的IP地址中的指定端口號連接起來。 |
Socket(InetAddress host, int port, boolean stream) | 過時的。 使用UDP傳輸DatagramSocket。 |
Socket(InetAddress address, int port, InetAddress localAddr, int localPort) | 創(chuàng)建一個套接字,并將其與指定的遠程端口上的指定的遠程地址連接起來。 |
Socket(Proxy proxy) | 創(chuàng)建一個連接的套接字類型,指定代理,如果有,應該使用無論任何其他設置。 |
protected Socket(SocketImpl impl) | 創(chuàng)建一個用戶指定的socketimpl連接插座。 |
Socket(String host, int port) | 創(chuàng)建一個流套接字,并將其與指定的主機上的指定端口號連接起來。 |
Socket(String host, int port, boolean stream) | 過時的。 使用UDP傳輸DatagramSocket。 |
Socket(String host, int port, InetAddress localAddr, int localPort) | 創(chuàng)建一個套接字,并將其連接到指定的遠程端口上的指定的遠程主機上 |
API:
void bind(SocketAddress bindpoint) | 將套接字綁定到本地地址。 |
void close() | 關閉這個套接字。 |
void connect(SocketAddress endpoint) | 將此套接字連接到服務器。 |
void connect(SocketAddress endpoint, int timeout) | 將此套接字與指定的超時值連接到服務器。 |
SocketChannel getChannel() | 返回與此套接字關聯(lián)的獨特的 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輸入緩沖區(qū)的大小。 |
SocketAddress getRemoteSocketAddress() | 返回此套接字連接的端點的地址,或如果它是無關的 null。 |
boolean getReuseAddress() | 如果 SO_REUSEADDR啟用。 |
int getSendBufferSize() | 得到這個 Socket的 SO_SNDBUF期權價值,即緩沖區(qū)的大小由平臺用于輸出在這 Socket。 |
int getSoLinger() | 返回設置 SO_LINGER。 |
int getSoTimeout() | 返回設置 SO_TIMEOUT。 |
boolean getTcpNoDelay() | 如果 TCP_NODELAY啟用。 |
int getTrafficClass() | 獲取從這個套接字發(fā)送的數(shù)據(jù)包的IP頭中的業(yè)務類或服務類型 |
boolean isBound() | 返回套接字的綁定狀態(tài)。 |
boolean isClosed() | 返回套接字的關閉狀態(tài)。 |
boolean isConnected() | 返回套接字的連接狀態(tài)。 |
boolean isInputShutdown() | 返回套接字連接的讀半是否關閉。 |
boolean isOutputShutdown() | 返回套接字連接的寫是否關閉的是否關閉。 |
void sendUrgentData(int data) | 在套接字上發(fā)送一個字節(jié)的緊急數(shù)據(jù)。 |
void setKeepAlive(boolean on) | 啟用/禁用 SO_KEEPALIVE。 |
void setOOBInline(boolean on) | 啟用/禁用 SO_OOBINLINE(TCP緊急數(shù)據(jù)收據(jù))默認情況下,此選項是禁用TCP套接字上接收緊急數(shù)據(jù)是默默丟棄。 |
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) | 設置客戶端套接字實現(xiàn)工廠的應用程序。 |
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) | 集交通類或從該套接字發(fā)送數(shù)據(jù)包的IP報頭字節(jié)型服務。 |
void shutdownInput() | 將此套接字的輸入流放在“流結束”中。 |
void shutdownOutput() | 禁用此套接字的輸出流。 |
String toString() | 將這一 String插座 |
到此這篇關于Socket與ServerSocket類構造方法與API的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java(SpringBoot)項目打包(構建)成Docker鏡像的幾種常見方式
在對Spring Boot應用程序進行Docker化時,為應用程序選擇正確的基礎鏡像非常重要,下面這篇文章主要給大家介紹了關于Java(SpringBoot)項目打包(構建)成Docker鏡像的幾種常見方式,需要的朋友可以參考下2023-12-12手工體驗smtp和pop3協(xié)議 郵件實現(xiàn)詳解(二)
POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務器的通信規(guī)則,這篇文章我們就來手工體驗SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下2017-10-10