Java Socket編程總結
阿新 • • 發佈:2017-09-24
remote etl str 靜態 hostname 成員方法 rsize 對象 point
一、網絡API
InetAddress 用於標識網絡上的硬件資源,主要是IP地址
URL 統一資源定位符,通過URL可以直接讀取或寫入網絡上的數據 Sockets 使用TCP協議實現的網絡通信Socket相關的類 Datagram 使用UDP協議,將數據保存在用戶數據報中,通過網絡進行通信。
二、地址
A、InetAddress ip地址
(1)靜態方法
- getLocalHost() InetAddress
- getByName(String host) InetAddress
- getAllByName(String host) InetAddress[]
- getByAddress(byte[] addr) InetAddress
- getByAddress(String host, byte[] addr) InetAddress
(2)成員方法
- getAddress() byte[]
- getCanonicalHostName() String
- getHostAddress() String
- getHostName() String
- isAnyLocalAddress() boolean
- isMulticastAddress() boolean
- isReachable(int timeout) boolean
B、InetSocketAddress socket地址
(1)構造方法
- InetSocketAddress(InetAddress addr, int port) 根據 IP 地址和端口號創建套接字地址。
- InetSocketAddress(int port) 創建套接字地址,其中 IP 地址為通配符地址,端口號為指定值。
- InetSocketAddress(String hostname, int port) 根據主機名和端口號創建套接字地址。
(2)成員方法
getAddress() InetAddress 獲取 InetAddress。
getHostName() String 獲取 hostname。
getPort() int 獲取端口號。
(4)靜態方法
createUnresolved(String host, int port) InetSocketAddress 根據主機名和端口號創建未解析的套接字地址。
三、Socket
(1)構造方法
- Socket() 通過系統默認類型的 SocketImpl 創建未連接套接字
- Socket(InetAddress address, int port) 創建一個流套接字並將其連接到指定 IP 地址的指定端口號。
- Socket(InetAddress address, int port, InetAddress localAddr, int localPort) 創建一個套接字並將其連接到指定遠程地址上的指定遠程端口。
- Socket(Proxy proxy) 創建一個未連接的套接字並指定代理類型(如果有),該代理不管其他設置如何都應被使用。
- Socket(String host, int port) 創建一個流套接字並將其連接到指定主機上的指定端口號。
- Socket(String host, int port, InetAddress localAddr, int localPort) 創建一個套接字並將其連接到指定遠程主機上的指定遠程端口。
(2)成員方法
1)關聯地址
- bind(SocketAddress bindpoint) void 將套接字綁定到本地地址。
- connect(SocketAddress endpoint) void 將此套接字連接到服務器。
- connect(SocketAddress endpoint, int timeout) void 將此套接字連接到服務器,並指定一個超時值。
- isBound() boolean 返回套接字的綁定狀態。
- isConnected() boolean 返回套接字的連接狀態。
2)獲取IP地址
- getInetAddress() InetAddress 返回套接字連接的地址。
- getLocalAddress() InetAddress 獲取套接字綁定的本地地址。
- getPort() int 返回此套接字連接到的遠程端口。
- getLocalPort() int 返回此套接字綁定到的本地端口。
- getLocalSocketAddress() SocketAddress 返回此套接字綁定的端點的地址,如果尚未綁定則返回 null。
- getRemoteSocketAddress() SocketAddress 返回此套接字連接的端點的地址,如果未連接則返回 null。
3)獲取數據
- getInputStream() InputStream 返回此套接字的輸入流。
- getOutputStream() OutputStream 返回此套接字的輸出流。
- getChannel() SocketChannel 返回與此數據報套接字關聯的唯一 SocketChannel 對象(如果有)。
4)設置緩沖區
- setReceiveBufferSize(int size) void 將此 Socket 的 SO_RCVBUF 選項設置為指定的值。
- setSendBufferSize(int size) void 將此 Socket 的 SO_SNDBUF 選項設置為指定的值。
5)重用端口
- setReuseAddress(boolean on) void 啟用/禁用 SO_REUSEADDR 套接字選項。
- getReuseAddress() boolean 測試是否啟用 SO_REUSEADDR。
6)關閉
- close() void 關閉此套接字。
- isClosed() boolean 返回套接字的關閉狀態。
四、ServerSocket
(1)構造方法
Java Socket編程總結