Socket
客户端套接字
- Socket(String host, int port)
构建一个套接字,用来连接指定的主机和端口,如Socket("www.jianshu.com, 80)
,但在等待连接的过程中,线程阻塞,可以使用下面的代码指定连接超时
Socket s = new Socket();//构造一个未连接的套接字
s.connect(new InetSocketAddress("www.jianshu.com", 80), 5000);
- isConnected()
判断套接字是否已连接 - setSoTimeout(int time)
设置在该套接字上读请求的超时时间,如果不设置,在读请求的时候回阻塞 - InputStream getInputStream()
获取该套接字的输入流 - OutputStream getOutputStream()
获取该套接字的输出流 - shutdownInput()
-shutdownOutput()
半连接,关闭套接字的输入流、输出流 - isInpoutShutdown()
- isOutputShutdown()
判断是否输入流/输出流已关闭
InetAddress
因特网地址对象封装一个ip地址
- static InetAddress getByName(String host)
根据之居明创建一个InetAddress对象,如InetAddress.getByName("www.jainshu.com")
- static InetAddress[] getAllByName(String host)
一个主机可能有多个ip地址,获取该主机的所有ip地址 - static InetAddress getLocalAddress()
获取本地ip地址对象(局域网地址,一般为192.168.xx.xx) - static InetAddress getLoopbackAddress()
回环地址,localhost(127.0.0.1) - byte[] getAddress()
返回ip地址的字节数组 - String getHostAddress()
返回ip地址的十进制形式的字符串 - getHostName()
返回主机名
ServerSocket
服务端套接字
- ServerSocket(int port)
创建一个监听指定端口的服务器套接字 - Socket accept()
等待客户端的连接,阻塞当前线程直到与客户端建立连接
SocketChannel
可中断的套接字
- static open(SocketAddress address)
打卡一个套接字通道,如SocketChannel channel = SocketChannel.open(new InetSocketAddress("www.baidu.com", 80));
ServerSocketChannel
Channels
获取通道的输入输出流
- Channels.newInputStream(ReadableByteChannel channel)
- Channels.newOutputStream(WritableByteChannel channel)
URI和URL
URI(unified resource identifier)统一资源标识符,是一种格式,纯粹的语法结构,URL(unified resource locator)统一资源定位符,是URI的特例,可以定位到网络资源。Socket是传输层的,URL则是应用层的
- InputStream openStream()
打开URL的输入流,用来读取URL资源 - URLConnection openConnection()
但会一个URLConnection对象,负责管理与URL的连接
URLConnection
- get/setDoOutput(boolean doOutput)
- get/setDoInput(boolean doInput)
获取/设置输入输出流的可用性,如果为true,则可以从输入流读取内容,或向输入流发送数据 - getInputStream()
- getOutputStream()
获取输入输出流 - connect()
连接 - set/getConnectTimeout(int timeout)
- set/getReadTimeout(int timeout)
设置/获取连接和读的超时 - 另外还有一些设置/读取请求头新的方法,获取响应头信息的方法
HttpURLConnection
- InputStream getErrorStream()
返回一个可以读取web服务器的错误信息的流
URLEncoder
- static String encoder(String s, String encoding)
采用指定的字符编码对字符串进行编码,a-z A-Z 0-9 _ . - *
这些字符保持不变,空格编码成+
,其他字符被编码城%XY
形式,oxXY
为该字符的十六进制
URLDecoder
- static String decoder(String s, String encoding)
采用指定的编码对以编码的字符串进行解码并返回
发送email
Session,MineMessage,Transport,RecipientType
网友评论