1. 程式人生 > >Java Socket編程總結

Java Socket編程總結

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編程總結