当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)

类 java.net.Socket

java.lang.Object
   |
   +----java.net.Socket

public class Socket
extends Object

该类实现客户机 socket (也可以只称为 “socket”) 。 一个 socket 是两 台机器通信的端点。

socket 的实际工作是由一个 SocketImpl 的类实例执行的 。 一个应用通过改变 生成 socket 实现的 socket 工厂,可以配置自己以生成适合本地防火墙的 socket 。

来自:
JDK1.0
参见:
setSocketImplFactory, SocketImpl

构造子索引

Socket()
根据 SocketImpl 的系统默认值生成一个没有连接的 socket 。
Socket(InetAddress, int)
生成一个 socket 流并且把它连接到指定IP 地址的指定端口。
Socket(InetAddress, int, boolean)
生成一个 socket 并且把它连接到指定IP 地址的指定端口。 不推荐使用该方法。
Socket(InetAddress, int, InetAddress, int)
生成一个 socket 并且把它连接到指定远程端口的指定远程地址。
Socket(SocketImpl)
根据用户指定的 SocketImpl 生成一个无连接的 Socket 。
Socket(String, int)
生成一个 socket 流并且把它连接到命名主机的指定端口。
Socket(String, int, boolean)
生成一个 socket 流并且把它连接到命名主机的指定端口。 不推荐使用该方法。
Socket(String, int, InetAddress, int)
生成一个 socket 并且把它连接到在指定远程主机的指定远程端口。

方法索引

close()
关闭该 socket 。
getInetAddress()
返回 socket 连接的地址。
getInputStream()
返回 socket 的输入流。
getLocalAddress()
获取该 socket 绑定的本地地址。
getLocalPort()
返回该 socket 绑定的本机端口。
getOutputStream()
返回 socket 的输出流。
getPort()
返回 socket 连接的远程端口。
getSoLinger()
返回 SO_LINGER 的设置。
getSoTimeout()
返回 SO_TIMEOUT 的设置。
getTcpNoDelay()
测试 TCP_NODELAY 是否是允许的。
setSocketImplFactory(SocketImplFactory)
为应用程序设置客户机 socket 实现工厂。
setSoLinger(boolean, int)
用指定的等候时间设置/禁止 SO_LINGER 。
setSoTimeout(int)
以毫秒为单位,设置或取消 SO_TIMEOUT 的指定的超时。
setTcpNoDelay(boolean)
设置或取消 TCP_NODELAY (设置或取消 Nagle's algorithm) 。
toString()
把该 socket 转换成 String.

构造子

Socket
 protected Socket()
根据 SocketImpl 的系统默认值生成一个没有连接的 socket 。

Socket
 protected Socket(SocketImpl impl) throws SocketException
根据用户指定的 SocketImpl 生成一个无连接的 Socket 。

参数 impl 是子类希望用在 Socket 上的 SocketImpl 实例。

Socket
 public Socket(String host,
               int port) throws UnknownHostException, IOException
生成一个 socket 流并且把它连接到命名主机的指定端口。

如果应用程序已指定了服务器 socket 工厂,则该工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。 否则将生成一个 “无格式” socket 。

参数:
host -主机名 。
port - 端口号码 。
抛出: IOException
如果生成 socket 的时侯发生一 I/O 错误 。
参见:
setSocketImplFactory, SocketImpl, createSocketImpl
Socket
 public Socket(InetAddress address,
               int port) throws IOException
生成一个 socket 流并且把它连接到指定IP 地址的指定端口。

如果应用程序已指定了 socket 工厂,则该工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。 否则将生成一个“无格式” socket 。

参数:
address - IP 地址 。
port - 端口号码 。
抛出: IOException
如果生成 socket 的时侯发生一 I/O 错误 。
参见:
setSocketImplFactory, SocketImpl, createSocketImpl
Socket
 public Socket(String host,
               int port,
               InetAddress localAddr,
               int localPort) throws IOException
生成一个 socket 并且把它连接到指定远程主机的指定远程端口上。 该 Socket 将捆绑到所提供的本地地址和端口上。

参数:
host - 远程主的名称 。
port - 远程端口 。
localAddr - 该 socket 的本地地址 。
localPort - 该 socket 的本机端口 。
Socket
 public Socket(InetAddress address,
               int port,
               InetAddress localAddr,
               int localPort) throws IOException
生成一个 socket 并且把它连接到指定远程端口的指定远程地址。 该 Socket 将捆绑到所提供的本地地址和端口上。

参数:
address - 远程地址
port - 远程端口
localAddr - 该 socket 的本地地址 。
localPort - 该 socket 的本机端口 。
Socket
 public Socket(String host,
               int port,
               boolean stream) throws IOException
注意:不推荐使用 Suskto 方法。 使用 DatagramSocket 对 UDP 传送 。

生成一个 socket 流并且把它连接到命名主机的指定端口。

如果参数流是 true ,将生成一个 socket 流 。 如果参数流是 false ,将生成一个 socket 数据报文 。

如果应用程序已指定了服务器 socket 工厂,则该工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。 否则一个将生成一个“无格式” socket 。

参数:
host -主机名 。
port - 端口号码 。
stream - 一个 boolean 指示是一个 socket 流还是一个 socket 数据报文 。
抛出: IOException
如果生成 socket 的时侯发生一 I/O 错误 。
参见:
setSocketImplFactory, SocketImpl, createSocketImpl
Socket
 public Socket(InetAddress host,
               int port,
               boolean stream) throws IOException
注意:不推荐使用 Suskto 方法。 使用 DatagramSocket 对 UDP 传送 。

生成一个 socket 并且把它连接到指定IP 地址的指定端口。

如果参数流是 true ,将生成一个 socket 流 。 如果参数流是 false ,将生成一个 socket 数据报文 。

如果应用程序已指定了服务器 socket 工厂,则该工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。 否则见生成一个“无格式” socket 。

参数:
address - IP 地址 。
port - 端口号码 。
stream - 如果是 true ,生成一个 socket 流 ;否则生成一个 socket 数据报文 。
抛出: IOException
如果生成 socket 的时侯发生一 I/O 错误 。
参见:
setSocketImplFactory, SocketImpl, createSocketImpl

方法

getInetAddress
 public InetAddress getInetAddress()
返回 socket 连接的地址。

返回:
socket 连接的远程IP 地址 。
getLocalAddress
 public InetAddress getLocalAddress()
获取该 socket 绑定的本地地址。

getPort
 public int getPort()
返回 socket 连接的远程端口。

返回:
socket 连接的远程端口号。
getLocalPort
 public int getLocalPort()
返回该 socket 绑定的本机端口。

返回:
socket 连接的本机端口号。
getInputStream
 public InputStream getInputStream() throws IOException
返回 socket 的输入流 。

返回:
从该 socket 以字节读取的输入流 。
抛出: IOException
如果在生成输入流的时侯发生一 I/O 错误。
getOutputStream
 public OutputStream getOutputStream() throws IOException
返回 socket 的输出流 。

返回:
以字节写入到该 socket 输出流 。
抛出: IOException
如果在生成输出流的时侯发生一 I/O 错误。
setTcpNoDelay
 public void setTcpNoDelay(boolean on) throws SocketException
设置或取消 TCP_NODELAY (设置或取消 Nagle 的算法) 。

getTcpNoDelay
 public boolean getTcpNoDelay() throws SocketException
测试 TCP_NODELAY 是否是允许的 。

setSoLinger
 public void setSoLinger(boolean on,
                         int val) throws SocketException
用指定的等候时间设置/禁止 SO_LINGER 。

getSoLinger
 public int getSoLinger() throws SocketException
返回 SO_LINGER 的设置 。 返回为 -1 表示该选择项是屏蔽的 。

setSoTimeout
 public synchronized void setSoTimeout(int timeout) throws SocketException
以毫秒为单位,设置或取消 SO_TIMEOUT 的指定的超时。 用该选择项设置一个非零的超时 ,对 有关 Socket 的输入流调用 read() ,按块记录将仅持续设定的时间。 如果超时得以验证 ,java.io.InterruptedIOException 将被启动 ,即使 Socket 仍有效。 选择项 must 被设置成可以加入封锁操作。 超时必须是 > 0 。 取值为零的超时被解释为无穷大的超时。

getSoTimeout
 public synchronized int getSoTimeout() throws SocketException
返回 SO_TIMEOUT 的设置 。 返回为 0 表示该选择项是屏蔽的 (如: 超时为无穷大)。

close
 public synchronized void close() throws IOException
关闭该 socket 。

抛出: IOException
如果在关闭 socket 的时侯发生一 I/O 错误。
toString
 public String toString()
转换该 socket 成一个 String.

返回:
该 socket 的字符串表示 。
覆盖:
Object 中的 toString
setSocketImplFactory
 public static synchronized void setSocketImplFactory(SocketImplFactory fac) throws IOException
对应用程序设置客户机实现 socket 的执行工厂。 该工厂只能指定一次。

如果应用程序生成一个新的客户机 socket ,则该 socket 实现工厂的 createSocketImpl 方法将被调用来生成实际的 socket 应用。

参数:
fac - 期望的工厂。
抛出: IOException
如果在设置 socket 工厂的时侯发生一个 I/O错误 。
抛出:SocketException
如果工厂已定义 。
参见:
createSocketImpl

当前位置 类层次 (JDK) 所有类 (JDK) 所有域和方法 (JDK)