JavaTM 2 Platform
Standard Ed. 6

java.net
類別 SocketImpl

java.lang.Object
  繼承者 java.net.SocketImpl
所有已實作的介面:
SocketOptions

public abstract class SocketImpl
extends Object
implements SocketOptions

抽象類別 SocketImpl 是實際實作Socket的全部類別的通用父級類別。創建客戶端和伺服器Socket都可以使用它。

“普通”Socket嚴格按描述實作這些方法,無需嘗試通過防火牆或代理。

從以下版本開始:
JDK1.0

欄位摘要
protected  InetAddress address
          此Socket的遠端端點的 IP 位址。
protected  FileDescriptor fd
          此Socket的檔案描述符物件。
protected  int localport
          此Socket連接到的本地埠號號。
protected  int port
          此Socket連接到的遠端主機的埠號號。
 
從介面 java.net.SocketOptions 繼承的欄位
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY
 
建構子摘要
SocketImpl()
           
 
方法摘要
protected abstract  void accept(SocketImpl s)
          接受連接。
protected abstract  int available()
          返回可以不受阻塞地從此Socket中讀取的位元組數。
protected abstract  void bind(InetAddress host, int port)
          將此Socket綁定到指定的本地 IP 位址和埠號號。
protected abstract  void close()
          關閉此Socket。
protected abstract  void connect(InetAddress address, int port)
          將此Socket連接到指定主機上的指定埠號號。
protected abstract  void connect(SocketAddress address, int timeout)
          將此Socket連接到指定主機上的指定埠號號。
protected abstract  void connect(String host, int port)
          將此Socket連接到指定主機上的指定埠號。
protected abstract  void create(boolean stream)
          創建一個串流或資料電報Socket。
protected  FileDescriptor getFileDescriptor()
          返回此Socket的 fd 欄位的值。
protected  InetAddress getInetAddress()
          返回此Socket的 address 欄位的值。
protected abstract  InputStream getInputStream()
          返回此Socket的輸入串流。
protected  int getLocalPort()
          返回此Socket的 localport 欄位的值。
protected abstract  OutputStream getOutputStream()
          返回此Socket的輸出串流。
protected  int getPort()
          返回此Socket的 port 欄位的值。
protected abstract  void listen(int backlog)
          將傳入連接指示(連接請求)的最大佇列長度設置為 count 參數。
protected abstract  void sendUrgentData(int data)
          在Socket上發送一個緊急資料位元組。
protected  void setPerformancePreferences(int connectionTime, int latency, int bandwidth)
          設置此Socket的性能偏好 (performance preferences)。
protected  void shutdownInput()
          將此Socket的輸入串流置於“串流的末尾”。
protected  void shutdownOutput()
          禁用此Socket的輸出串流。
protected  boolean supportsUrgentData()
          返回此 SocketImpl 是否支持發送緊急資料。
 String toString()
          以 String 的形式返回此Socket的位址和埠號。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
從介面 java.net.SocketOptions 繼承的方法
getOption, setOption
 

欄位詳細資訊

fd

protected FileDescriptor fd
此Socket的檔案描述符物件。


address

protected InetAddress address
此Socket的遠端端點的 IP 位址。


port

protected int port
此Socket連接到的遠端主機的埠號號。


localport

protected int localport
此Socket連接到的本地埠號號。

建構子詳細資訊

SocketImpl

public SocketImpl()
方法詳細資訊

create

protected abstract void create(boolean stream)
                        throws IOException
創建一個串流或資料電報Socket。

參數:
stream - 如果為 true,則創建串流Socket;否則創建資料電報Socket。
拋出:
IOException - 如果創建Socket時發生 I/O 錯誤。

connect

protected abstract void connect(String host,
                                int port)
                         throws IOException
將此Socket連接到指定主機上的指定埠號。

參數:
host - 遠端主機名。
port - 埠號號。
拋出:
IOException - 如果連接到遠端主機時發生 I/O 錯誤。

connect

protected abstract void connect(InetAddress address,
                                int port)
                         throws IOException
將此Socket連接到指定主機上的指定埠號號。

參數:
address - 遠端主機的 IP 位址。
port - 埠號號。
拋出:
IOException - 如果嘗試連接時發生 I/O 錯誤。

connect

protected abstract void connect(SocketAddress address,
                                int timeout)
                         throws IOException
將此Socket連接到指定主機上的指定埠號號。逾時值零被解釋為無限逾時。在建立連接或者發生錯誤之前,連接一直處於阻塞狀態。

參數:
address - 遠端主機的 Socket 位址。
timeout - 以毫秒為單位的逾時值;或者為零,表示沒有逾時值。
拋出:
IOException - 如果嘗試連接時發生 I/O 錯誤。
從以下版本開始:
1.4

bind

protected abstract void bind(InetAddress host,
                             int port)
                      throws IOException
將此Socket綁定到指定的本地 IP 位址和埠號號。

參數:
host - 屬於本地介面的 IP 位址。
port - 埠號號。
拋出:
IOException - 如果綁定此Socket時發生 I/O 錯誤。

listen

protected abstract void listen(int backlog)
                        throws IOException
將傳入連接指示(連接請求)的最大佇列長度設置為 count 參數。如果佇列滿時收到連接指示,則拒絕該連接。

參數:
backlog - 佇列的最大長度。
拋出:
IOException - 如果創建佇列時發生 I/O 錯誤。

accept

protected abstract void accept(SocketImpl s)
                        throws IOException
接受連接。

參數:
s - 接受的連接。
拋出:
IOException - 如果接受連接時發生 I/O 錯誤。

getInputStream

protected abstract InputStream getInputStream()
                                       throws IOException
返回此Socket的輸入串流。

返回:
從此Socket讀取內容的串流。
拋出:
IOException - 如果創建輸入串流時發生 I/O 錯誤。

getOutputStream

protected abstract OutputStream getOutputStream()
                                         throws IOException
返回此Socket的輸出串流。

返回:
寫入此Socket的輸出串流。
拋出:
IOException - 如果創建輸出串流時發生 I/O 錯誤。

available

protected abstract int available()
                          throws IOException
返回可以不受阻塞地從此Socket中讀取的位元組數。

返回:
不受阻塞地從此Socket讀取的位元組數。
拋出:
IOException - 如果確定可用位元組數時發生 I/O 錯誤。

close

protected abstract void close()
                       throws IOException
關閉此Socket。

拋出:
IOException - 如果關閉此Socket時發生 I/O 錯誤。

shutdownInput

protected void shutdownInput()
                      throws IOException
將此Socket的輸入串流置於“串流的末尾”。發送到此Socket的任何資料都會被接收到然後悄悄被丟棄。 如果在Socket上調用 shutdownInput() 後從Socket輸入串流讀取內容,則串流將返回 EOF(檔案結束符)。

拋出:
IOException - 如果關閉此Socket時發生 I/O 錯誤。
從以下版本開始:
1.3
另請參見:
Socket.shutdownOutput(), Socket.close(), Socket.setSoLinger(boolean, int)

shutdownOutput

protected void shutdownOutput()
                       throws IOException
禁用此Socket的輸出串流。對於 TCP Socket,任何以前寫入的資料都將被發送,並且後跟 TCP 的正常連接終止序列。 如果在Socket上調用 shutdownOutput() 後寫入Socket輸出串流,則該串流將拋出 IOException。

拋出:
IOException - 如果關閉此Socket時發生 I/O 錯誤。
從以下版本開始:
1.3
另請參見:
Socket.shutdownInput(), Socket.close(), Socket.setSoLinger(boolean, int)

getFileDescriptor

protected FileDescriptor getFileDescriptor()
返回此Socket的 fd 欄位的值。

返回:
此Socket的 fd 欄位的值。
另請參見:
fd

getInetAddress

protected InetAddress getInetAddress()
返回此Socket的 address 欄位的值。

返回:
此Socket的 address 欄位的值。
另請參見:
address

getPort

protected int getPort()
返回此Socket的 port 欄位的值。

返回:
此Socket的 port 欄位的值。
另請參見:
port

supportsUrgentData

protected boolean supportsUrgentData()
返回此 SocketImpl 是否支持發送緊急資料。預設情況下返回 false,除非在子類別中覆寫了該方法。

返回:
如果緊急資料受支持,則返回 true
從以下版本開始:
1.4
另請參見:
address

sendUrgentData

protected abstract void sendUrgentData(int data)
                                throws IOException
在Socket上發送一個緊急資料位元組。要發送的位元組是參數的八個低位

參數:
data - 要發送的資料的位元組
拋出:
IOException - 如果在發送資料時發生錯誤。
從以下版本開始:
1.4

getLocalPort

protected int getLocalPort()
返回此Socket的 localport 欄位的值。

返回:
此Socket的 localport 欄位的值。
另請參見:
localport

toString

public String toString()
String 的形式返回此Socket的位址和埠號。

覆寫:
類別 Object 中的 toString
返回:
此Socket的字元串表示形式。

setPerformancePreferences

protected void setPerformancePreferences(int connectionTime,
                                         int latency,
                                         int bandwidth)
設置此Socket的性能偏好 (performance preferences)。

預設情況下Socket使用 TCP/IP 協議。有些實作可能提供與 TCP/IP 具有不同性能特徵的替換協議。此方法允許應用程序在實作從可用協議中作出選擇時表達它自己關於應該如何進行折衷的偏好。

性能偏好由三個整數描述,它們的值分別指示短連接時間、低延遲和高帶寬的相對重要性。這些整數的絕對值沒有意義;為了選擇協議,需要簡單比較它們的值,較大的值指示更強的偏好。負值表示的優先級低於正值。例如,如果應用程序相對於低延遲和高帶寬更偏好短連接時間,則其可以使用值 (1, 0, 0) 調用此方法。如果應用程序相對於低延遲更偏好高帶寬,而相對於短連接時間更偏好低延遲,則其可以使用值 (0, 1, 2) 調用此方法。 預設情況下此方法不執行任何操作,除非在子類別中覆寫該方法。

參數:
connectionTime - 表達短連接時間的相對重要性的 int
latency - 表達低延遲的相對重要性的 int
bandwidth - 表達高帶寬的相對重要性的 int
從以下版本開始:
1.5

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only