在通信雙方中,ServerSocket是伺服器端負責接收的一方,它負責監聽指定埠,其構造函數如下: 1、ServerSocket() throws IOException;無參構造函數,之所以存在主要是因為如果一旦創建好socket,則其選項參數將無法設置,使用該方法可以在指定埠號地址等之前先設 ...
在通信雙方中,ServerSocket是伺服器端負責接收的一方,它負責監聽指定埠,其構造函數如下:
1、ServerSocket() throws IOException;無參構造函數,之所以存在主要是因為如果一旦創建好socket,則其選項參數將無法設置,使用該方法可以在指定埠號地址等之前先設置參數。
2、ServerSocket(int port) throws IOException;指定監聽埠號,當埠號已經被占用或者因為某些原因埠號不允許被使用時會拋出BindException。。
3、ServerSocket(int port,int backlog) throws IOException;指定監聽的埠號和指定客戶連接請求連接隊列的長度。
4、ServerSocket(int port,int backlog,InetAddress bindAddr) throws IOException;可以指定要綁定的IP地址。
該類方法有:
public InetAddress getInetAddress():用於返回伺服器綁定的IP地址;
public int getLoalPort():該方法用於返回綁定的埠號;
該類有幾個選項可以在創建後指定:
1、SO_TIMEOUT:表示等待客戶端連接的時間,方法為 public void setSoTimeout(int timeout) throws SocketException,public int getSoTimeout() throws IOException,設置時以ms為單位,如果設置為0表示永不超時。
2、SO_REUSEADDR:決定網路上有數據向舊的ServerSocket傳遞數據時是否允許新的ServerSocket綁定到與舊的ServerSocket同樣的埠上,public void setResuseAddress(boolean in) throws SocketException,public boolean getResuseAddress() throws SocketEception,但是一定要在socket綁定到埠之前使用該方法設置。
3、SO_RCVBUF:表示伺服器端用於接收數據的緩衝區的大小,單位為位元組,publi void setReceiveBufferSize(int size) throws SocketException,public int getReceiveBufferSize() throws SocketException,該方法在ServerSocket綁定到埠前後都有效,除非要設置的size大於64KB則需要先設定後綁定。
4、public void setPerformeancePreferreces(int connectionTime,int latency,int bandwidth)。