Socket 创建
Socket(InetAddress remoteAddr int remotePort)
Socket(String remoteHost, int remotePort)
Socket(InetAddress remoteAddr, int remotePort, InetAddress localAddr, int localPort)
Socket(String remoteHost, int remotePort, InetAddress localAddr ,int localPort)
Socket()
前4个构造方法 在创建了一个 TCP 套接字后,先连接到(connect ) 指定的远程地址和端口号, 再将其返回给程序,
前2个 构造方法没有指定本地地址和端口号,因此将采用默认地址和可用的端口号。 在用多个接口的主机上指定本地地址是有用的。指定的目的地址字符串参数 可以使用与InetAddress 构造方法的参数相同的形式。
最后一个构造方法创建一个没有连接的套接字, 在使用它进行通信之前,必须进行显式连接(通过 connect() )
Socket 操作
void connect(SocketAddress destination)
void connect(SocketAddress destinatin, int timeout)
InputStream getInputStream()
OutputStream getOutputStream()
void close()
void shutdownInput()
void shutdownOutput()
connect() 方法将使指定的终端打开一个 TCP 连接. SocketAddress 抽象类代表了套接字地址的一般形式,它的子类 InetSocketAddress 是针对 TCP/IP 套接字的特殊形式,与远程主机的通信 是通过与套接字相关联的输入输出流实现的。 可以使用 get...Stream() 方法来获取这些流
close() 方法关闭套接字及其关联的输入输出流,从而阻止对其的进一步操作。 shutDownInput() 方法关闭TCP 流的输入端,任何没有读取的数据都将被舍弃,包括那些已经被 套接字缓存的数据,正在传输的数据以及将要到达的数据。后续的任何从套接字读取数据的尝试都将抛出异常。 shutDownOutput() 方法在输出流上也产生类似的效果,但在具体实现中,已经写入套接字输出流的数据,将被尽量保证能发送到另一端.
默认情况下,Socket 是在TCP 连接的基础上实现的
Socket: 获取/ 检测属性
InetAddress getInetAddress()
int getPort()
InetAddress getLocalAddress()
int getLocalPort()
SocketAddress getRemoteSocketAddress()
SocketAddress getLocalSocketAddress()
这些方法返回套接字的相应属性, 在本文中,所有返回SocketAddress 的方法返回的都是InetSocketAddress 实例, InetSocketAddress 中封装了一个InetAddress 和一个端口号