Socket與ServerSocket類構(gòu)造方法與API
Socket類
概述:
socket可以使一個應(yīng)用從網(wǎng)絡(luò)中讀取和寫入數(shù)據(jù),不同計算機(jī)上的兩個應(yīng)用可以通過連接發(fā)送和接受字節(jié)流,當(dāng)發(fā)送消息時,你需要知道對方的ip和端口,在java中,socket指的是java.net.Socket類。
構(gòu)造方法:
| ServerSocket() | 創(chuàng)建一個綁定服務(wù)器套接字 |
| ServerSocket(int port) | 創(chuàng)建一個服務(wù)器套接字,綁定到指定的端口 |
| ServerSocket(int port, int backlog) | 創(chuàng)建一個服務(wù)器套接字,并將其綁定到指定的本地端口號,并使用指定的積壓 |
| ServerSocket(int port, int backlog, InetAddress bindAddr) | 用指定的端口創(chuàng)建一個服務(wù)器,聽積壓,和本地IP地址綁定 |
API:
| Socket accept() | 監(jiān)聽要對這個套接字作出的連接并接受它 |
| void bind(SocketAddress endpoint) | ServerSocket綁定到一個特定的地址(IP地址和端口號) |
| void bind(SocketAddress endpoint, int backlog) | ServerSocket綁定到一個特定的地址(IP地址和端口號) |
| void close() | 關(guān)閉這個套接字。 |
| ServerSocketChannel getChannel() | 返回與此套接字關(guān)聯(lián)的獨(dú)特的 ServerSocketChannel對象,如果任何 |
| InetAddress getInetAddress() | 返回此服務(wù)器套接字的本地地址 |
| int getLocalPort() | 返回此套接字正在偵聽的端口號 |
| SocketAddress getLocalSocketAddress() | 返回此套接字綁定到的端點(diǎn)的地址 |
| int getReceiveBufferSize() | 得到這個 ServerSocket的 SO_RCVBUF期權(quán)的價值,即該緩沖區(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è)置一個默認(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以指定的超時時間,以毫秒為單位 |
| String toString() | 返回此套接字作為 String實(shí)現(xiàn)的地址與端口 |
ServerSocket類
概述:
Socket類代表一個客戶端套接字,即任何時候連接到一個遠(yuǎn)程服務(wù)器應(yīng)用時構(gòu)建所需的socket。現(xiàn)在,要實(shí)現(xiàn)一個服務(wù)器應(yīng)用,需要不同的做法。服務(wù)器需隨時待命,因?yàn)椴恢揽蛻舳耸裁磿r候會發(fā)來請求,此時,我們需要使用ServerSocket,對應(yīng)的是java.net.ServerSocket類。
ServerSocket與Socket不同,ServerSocket是等待客戶端的請求,一旦獲得一個連接請求,就創(chuàng)建一個Socket示例來與客戶端進(jìn)行通信。
構(gòu)造方法:
| Socket() | 創(chuàng)建一個連接的套接字,與socketimpl系統(tǒng)默認(rèn)的類型。 |
| 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)建一個套接字,并將其與指定的遠(yuǎn)程端口上的指定的遠(yuǎn)程地址連接起來。 |
| Socket(Proxy proxy) | 創(chuàng)建一個連接的套接字類型,指定代理,如果有,應(yīng)該使用無論任何其他設(shè)置。 |
| protected Socket(SocketImpl impl) | 創(chuàng)建一個用戶指定的socketimpl連接插座。 |
| Socket(String host, int port) | 創(chuàng)建一個流套接字,并將其與指定的主機(jī)上的指定端口號連接起來。 |
| Socket(String host, int port, boolean stream) | 過時的。 使用UDP傳輸DatagramSocket。 |
| Socket(String host, int port, InetAddress localAddr, int localPort) | 創(chuàng)建一個套接字,并將其連接到指定的遠(yuǎn)程端口上的指定的遠(yuǎn)程主機(jī)上 |
API:
| void bind(SocketAddress bindpoint) | 將套接字綁定到本地地址。 |
| void close() | 關(guān)閉這個套接字。 |
| void connect(SocketAddress endpoint) | 將此套接字連接到服務(wù)器。 |
| void connect(SocketAddress endpoint, int timeout) | 將此套接字與指定的超時值連接到服務(wù)器。 |
| SocketChannel getChannel() | 返回與此套接字關(guān)聯(lián)的獨(dú)特的 SocketChannel對象,如果任何。 |
| InetAddress getInetAddress() | 返回套接字連接的地址。 |
| InputStream getInputStream() | 返回此套接字的輸入流。 |
| boolean getKeepAlive() | 如果 SO_KEEPALIVE啟用。 |
| InetAddress getLocalAddress() | 獲取綁定的套接字的本地地址。 |
| int getLocalPort() | 返回此套接字綁定的本地端口號。 |
| SocketAddress getLocalSocketAddress() | 返回此套接字綁定到的端點(diǎn)的地址。 |
| boolean getOOBInline() | 如果 SO_OOBINLINE啟用。 |
| OutputStream getOutputStream() | 返回此套接字的輸出流。 |
| int getPort() | 返回此套接字連接的遠(yuǎn)程端口號。 |
| int getReceiveBufferSize() | 得到這個 Socket的 SO_RCVBUF選項(xiàng)的值,是由平臺用于該 Socket輸入緩沖區(qū)的大小。 |
| SocketAddress getRemoteSocketAddress() | 返回此套接字連接的端點(diǎn)的地址,或如果它是無關(guān)的 null。 |
| boolean getReuseAddress() | 如果 SO_REUSEADDR啟用。 |
| int getSendBufferSize() | 得到這個 Socket的 SO_SNDBUF期權(quán)價值,即緩沖區(qū)的大小由平臺用于輸出在這 Socket。 |
| int getSoLinger() | 返回設(shè)置 SO_LINGER。 |
| int getSoTimeout() | 返回設(shè)置 SO_TIMEOUT。 |
| boolean getTcpNoDelay() | 如果 TCP_NODELAY啟用。 |
| int getTrafficClass() | 獲取從這個套接字發(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ā)送一個字節(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è)置這個 Socket指定值的 SO_SNDBUF選項(xiàng)。 |
| static void setSocketImplFactory(SocketImplFactory fac) | 設(shè)置客戶端套接字實(shí)現(xiàn)工廠的應(yīng)用程序。 |
| 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é)型服務(wù)。 |
| void shutdownInput() | 將此套接字的輸入流放在“流結(jié)束”中。 |
| void shutdownOutput() | 禁用此套接字的輸出流。 |
| String toString() | 將這一 String插座 |
到此這篇關(guān)于Socket與ServerSocket類構(gòu)造方法與API的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot中如何通過cors協(xié)議解決跨域問題
這篇文章主要介紹了springboot中通過cors協(xié)議解決跨域問題,cors是一個w3c標(biāo)準(zhǔn),它允許瀏覽器(目前ie8以下還不能被支持)像我們不同源的服務(wù)器發(fā)出xmlHttpRequest請求,我們可以繼續(xù)使用ajax進(jìn)行請求訪問。具體內(nèi)容詳情大家跟隨腳本之家小編一起學(xué)習(xí)吧2018-05-05
Java遞歸算法經(jīng)典實(shí)例(經(jīng)典兔子問題)
本文主要對經(jīng)典的兔子案例分析,來進(jìn)一步更好的理解和學(xué)習(xí)java遞歸算法,具有很好的參考價值,需要的朋友一起來看下吧2016-12-12
SpringBoot+kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot如何結(jié)合kaptcha實(shí)現(xiàn)圖片驗(yàn)證碼功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-01-01

