Socket與ServerSocket類構(gòu)造方法與API
Socket類
概述:
socket可以使一個(gè)應(yīng)用從網(wǎng)絡(luò)中讀取和寫入數(shù)據(jù),不同計(jì)算機(jī)上的兩個(gè)應(yīng)用可以通過連接發(fā)送和接受字節(jié)流,當(dāng)發(fā)送消息時(shí),你需要知道對方的ip和端口,在java中,socket指的是java.net.Socket類。
構(gòu)造方法:
ServerSocket() | 創(chuàng)建一個(gè)綁定服務(wù)器套接字 |
ServerSocket(int port) | 創(chuàng)建一個(gè)服務(wù)器套接字,綁定到指定的端口 |
ServerSocket(int port, int backlog) | 創(chuàng)建一個(gè)服務(wù)器套接字,并將其綁定到指定的本地端口號(hào),并使用指定的積壓 |
ServerSocket(int port, int backlog, InetAddress bindAddr) | 用指定的端口創(chuàng)建一個(gè)服務(wù)器,聽積壓,和本地IP地址綁定 |
API:
Socket accept() | 監(jiān)聽要對這個(gè)套接字作出的連接并接受它 |
void bind(SocketAddress endpoint) | ServerSocket綁定到一個(gè)特定的地址(IP地址和端口號(hào)) |
void bind(SocketAddress endpoint, int backlog) | ServerSocket綁定到一個(gè)特定的地址(IP地址和端口號(hào)) |
void close() | 關(guān)閉這個(gè)套接字。 |
ServerSocketChannel getChannel() | 返回與此套接字關(guān)聯(lián)的獨(dú)特的 ServerSocketChannel對象,如果任何 |
InetAddress getInetAddress() | 返回此服務(wù)器套接字的本地地址 |
int getLocalPort() | 返回此套接字正在偵聽的端口號(hào) |
SocketAddress getLocalSocketAddress() | 返回此套接字綁定到的端點(diǎn)的地址 |
int getReceiveBufferSize() | 得到這個(gè) ServerSocket的 SO_RCVBUF期權(quán)的價(jià)值,即該緩沖區(qū)的大小,將用于接受來自這 ServerSocket插座 |
boolean getReuseAddress() | 如果 SO_REUSEADDR啟用 |
int getSoTimeout() | 檢索設(shè)置 SO_TIMEOUT |
protected void implAccept(Socket s) | 子類使用此方法重載ServerSocket()返回自己的子類的插座 |
boolean isBound() | 返回的ServerSocket綁定狀態(tài) |
boolean isClosed() | 返回的ServerSocket關(guān)閉狀態(tài) |
void setPerformancePreferences(int connectionTime, int latency, int bandwidth) | 設(shè)置此ServerSocket性能偏好 |
void setReceiveBufferSize(int size) | 設(shè)置一個(gè)默認(rèn)值為提出接受這 ServerSocket插座 SO_RCVBUF選項(xiàng) |
void setReuseAddress(boolean on) | 啟用/禁用 SO_REUSEADDR套接字選項(xiàng) |
static void setSocketFactory(SocketImplFactory fac) | 設(shè)置服務(wù)器套接字實(shí)現(xiàn)工廠為應(yīng)用程序。 |
void setSoTimeout(int timeout) | 啟用/禁用 SO_TIMEOUT以指定的超時(shí)時(shí)間,以毫秒為單位 |
String toString() | 返回此套接字作為 String實(shí)現(xiàn)的地址與端口 |
ServerSocket類
概述:
Socket類代表一個(gè)客戶端套接字,即任何時(shí)候連接到一個(gè)遠(yuǎn)程服務(wù)器應(yīng)用時(shí)構(gòu)建所需的socket?,F(xiàn)在,要實(shí)現(xiàn)一個(gè)服務(wù)器應(yīng)用,需要不同的做法。服務(wù)器需隨時(shí)待命,因?yàn)椴恢揽蛻舳耸裁磿r(shí)候會(huì)發(fā)來請求,此時(shí),我們需要使用ServerSocket,對應(yīng)的是java.net.ServerSocket類。
ServerSocket與Socket不同,ServerSocket是等待客戶端的請求,一旦獲得一個(gè)連接請求,就創(chuàng)建一個(gè)Socket示例來與客戶端進(jìn)行通信。
構(gòu)造方法:
Socket() | 創(chuàng)建一個(gè)連接的套接字,與socketimpl系統(tǒng)默認(rèn)的類型。 |
Socket(InetAddress address, int port) | 創(chuàng)建一個(gè)流套接字,并將其與指定的IP地址中的指定端口號(hào)連接起來。 |
Socket(InetAddress host, int port, boolean stream) | 過時(shí)的。 使用UDP傳輸DatagramSocket。 |
Socket(InetAddress address, int port, InetAddress localAddr, int localPort) | 創(chuàng)建一個(gè)套接字,并將其與指定的遠(yuǎn)程端口上的指定的遠(yuǎn)程地址連接起來。 |
Socket(Proxy proxy) | 創(chuàng)建一個(gè)連接的套接字類型,指定代理,如果有,應(yīng)該使用無論任何其他設(shè)置。 |
protected Socket(SocketImpl impl) | 創(chuàng)建一個(gè)用戶指定的socketimpl連接插座。 |
Socket(String host, int port) | 創(chuàng)建一個(gè)流套接字,并將其與指定的主機(jī)上的指定端口號(hào)連接起來。 |
Socket(String host, int port, boolean stream) | 過時(shí)的。 使用UDP傳輸DatagramSocket。 |
Socket(String host, int port, InetAddress localAddr, int localPort) | 創(chuàng)建一個(gè)套接字,并將其連接到指定的遠(yuǎn)程端口上的指定的遠(yuǎn)程主機(jī)上 |
API:
void bind(SocketAddress bindpoint) | 將套接字綁定到本地地址。 |
void close() | 關(guān)閉這個(gè)套接字。 |
void connect(SocketAddress endpoint) | 將此套接字連接到服務(wù)器。 |
void connect(SocketAddress endpoint, int timeout) | 將此套接字與指定的超時(shí)值連接到服務(wù)器。 |
SocketChannel getChannel() | 返回與此套接字關(guān)聯(lián)的獨(dú)特的 SocketChannel對象,如果任何。 |
InetAddress getInetAddress() | 返回套接字連接的地址。 |
InputStream getInputStream() | 返回此套接字的輸入流。 |
boolean getKeepAlive() | 如果 SO_KEEPALIVE啟用。 |
InetAddress getLocalAddress() | 獲取綁定的套接字的本地地址。 |
int getLocalPort() | 返回此套接字綁定的本地端口號(hào)。 |
SocketAddress getLocalSocketAddress() | 返回此套接字綁定到的端點(diǎn)的地址。 |
boolean getOOBInline() | 如果 SO_OOBINLINE啟用。 |
OutputStream getOutputStream() | 返回此套接字的輸出流。 |
int getPort() | 返回此套接字連接的遠(yuǎn)程端口號(hào)。 |
int getReceiveBufferSize() | 得到這個(gè) Socket的 SO_RCVBUF選項(xiàng)的值,是由平臺(tái)用于該 Socket輸入緩沖區(qū)的大小。 |
SocketAddress getRemoteSocketAddress() | 返回此套接字連接的端點(diǎn)的地址,或如果它是無關(guān)的 null。 |
boolean getReuseAddress() | 如果 SO_REUSEADDR啟用。 |
int getSendBufferSize() | 得到這個(gè) Socket的 SO_SNDBUF期權(quán)價(jià)值,即緩沖區(qū)的大小由平臺(tái)用于輸出在這 Socket。 |
int getSoLinger() | 返回設(shè)置 SO_LINGER。 |
int getSoTimeout() | 返回設(shè)置 SO_TIMEOUT。 |
boolean getTcpNoDelay() | 如果 TCP_NODELAY啟用。 |
int getTrafficClass() | 獲取從這個(gè)套接字發(fā)送的數(shù)據(jù)包的IP頭中的業(yè)務(wù)類或服務(wù)類型 |
boolean isBound() | 返回套接字的綁定狀態(tài)。 |
boolean isClosed() | 返回套接字的關(guān)閉狀態(tài)。 |
boolean isConnected() | 返回套接字的連接狀態(tài)。 |
boolean isInputShutdown() | 返回套接字連接的讀半是否關(guān)閉。 |
boolean isOutputShutdown() | 返回套接字連接的寫是否關(guān)閉的是否關(guān)閉。 |
void sendUrgentData(int data) | 在套接字上發(fā)送一個(gè)字節(jié)的緊急數(shù)據(jù)。 |
void setKeepAlive(boolean on) | 啟用/禁用 SO_KEEPALIVE。 |
void setOOBInline(boolean on) | 啟用/禁用 SO_OOBINLINE(TCP緊急數(shù)據(jù)收據(jù))默認(rèn)情況下,此選項(xiàng)是禁用TCP套接字上接收緊急數(shù)據(jù)是默默丟棄。 |
void setPerformancePreferences(int connectionTime, int latency, int bandwidth) | 設(shè)置此套接字的性能首選項(xiàng)。 |
void setReceiveBufferSize(int size) | 集 SO_RCVBUF選項(xiàng),這 Socket指定值。 |
void setReuseAddress(boolean on) | 啟用/禁用 SO_REUSEADDR套接字選項(xiàng)。 |
void setSendBufferSize(int size) | 設(shè)置這個(gè) Socket指定值的 SO_SNDBUF選項(xiàng)。 |
static void setSocketImplFactory(SocketImplFactory fac) | 設(shè)置客戶端套接字實(shí)現(xiàn)工廠的應(yīng)用程序。 |
void setSoLinger(boolean on, int linger) | 啟用/禁用 SO_LINGER與指定的逗留的時(shí)間秒。 |
void setSoTimeout(int timeout) | 啟用/禁用 SO_TIMEOUT以指定的超時(shí)時(shí)間,以毫秒為單位。 |
void setTcpNoDelay(boolean on) | 啟用/禁用 TCP_NODELAY(禁用/啟用Nagle的算法)。 |
void setTrafficClass(int tc) | 集交通類或從該套接字發(fā)送數(shù)據(jù)包的IP報(bào)頭字節(jié)型服務(wù)。 |
void shutdownInput() | 將此套接字的輸入流放在“流結(jié)束”中。 |
void shutdownOutput() | 禁用此套接字的輸出流。 |
String toString() | 將這一 String插座 |
到此這篇關(guān)于Socket與ServerSocket類構(gòu)造方法與API的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成Docker鏡像的幾種常見方式
在對Spring Boot應(yīng)用程序進(jìn)行Docker化時(shí),為應(yīng)用程序選擇正確的基礎(chǔ)鏡像非常重要,下面這篇文章主要給大家介紹了關(guān)于Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成Docker鏡像的幾種常見方式,需要的朋友可以參考下2023-12-12Java實(shí)現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址
這篇文章主要介紹了如何利用Java語言實(shí)現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定的參考價(jià)值,快跟隨小編一起學(xué)習(xí)一下吧2022-06-06詳解Springboot+React項(xiàng)目跨域訪問問題
這篇文章主要介紹了詳解Springboot+React項(xiàng)目跨域訪問問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Java8 Collectors求和功能的自定義擴(kuò)展操作
這篇文章主要介紹了Java8 Collectors求和功能的自定義擴(kuò)展操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02Java Socket編程(三) 服務(wù)器Sockets
Java Socket編程(三) 服務(wù)器Sockets...2006-12-12手工體驗(yàn)smtp和pop3協(xié)議 郵件實(shí)現(xiàn)詳解(二)
POP3/IMAP協(xié)議定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則,這篇文章我們就來手工體驗(yàn)SMTP和POP3協(xié)議的奧秘,感興趣的小伙伴們可以參考一下2017-10-10