Socket
文章目录
Tips
端口号与IP地址的组合得出一个唯一的标识符套接字。
- 通信的两端都要有Socket,是两台机器间通信的端点
- 网络通信其实就是Socket间的通信,两个Socket间通过IO传输
- 分类:
stream socket
流套接字:使用TCP提供可依赖的字节流服务
datagram socket
数据报套接字:使用UDP提供“尽力而为”的数据报服务
常用构造器
Socket(InetAddress address,int port)
:创建一个流套接字并将其连接到指定IP 地址的指定端口号。Socket(String host,int port)
:创建一个流套接字并将其连接到指定主机上的指定端口号。
常用方法
InputStream
getInputStream()
:返回此套接字的输入流。可以用于接收网络消息OutputStream
getOutputStream()
:返回此套接字的输出流。可以用于发送网络消息InetAddress
getInetAddress()
:此套接字连接到的远程 IP 地址;如果是未连接的,则返回 null。InetAddress
getLocalAddress()
:获取套接字绑定的本地地址。 即本端的IP地址int
getPort()
:此套接字连接到的远程端口号;如果尚未连接,则返回0。int
getLocalPort()
:返回此套接字绑定到的本地端口。 如果尚未绑定套接字,则返回 -1。void
close()
:关闭此套接字。
套接字被关闭后,便不可在以后的网络连接中使用(即无法重新连接 或重新绑定)
同时将会关闭该套接字的 InputStream 和 OutputStream
需要创建新的套接字对象void
shutdownInput()
:套接字输入流返回 EOF(文件结束符),即不能从此套接字输入流中接收任何数据。void
shutdownOutput()
:禁用此套接字的输出流,即不能通过此套接字的输出流发送任何数据。
禁止后依旧写入套接字输出流, 则该流将抛出 IOException