1. InetAddress
InetAddress没有构造器,有两个静态方法来获取InetAddress实例。
1> getByName(String host):根据主机获取对应的InetAddress对象; //域名
2> getByAddress(byte[] addr):根据原始IP地址来获取对应的InetAddress对象。
3> getLocalHost()方法来获取本机IP地址对应的InetAddress实例。
4> isReachable() 方法,用于测试是否可以到达地址。
InetAddress还提供了三个方法获取InetAddress实例对应的IP地址和主机名。
1> String getCannonicalHostName():获取此IP地址的全限定域名。
2> String getHostAddress():返回InetAddress实例对应的IP地址字符串。
3> String getHostName():获取此IP地址的主机名。
2. URLDecoder和URLEncoder
URLDecoder类的decode(String s, String enc)静态方法将乱码字符串转化成普通字符串。
URLEncoder类的encode(String s, String enc)静态方法将普通字符串转化成 application/x-www-form-urlencoded MIME字符串。
3. URL (Uniform Resource Locator) 统一资源定位器
组成格式:protocol://host:port/resource [协议名 主机 端口 资源]
JDK中URL类方法:
String getFile():获取该URL的资源名
String getHost():获取该URL的主机名
String getPath():获取该URL的路径部分
int getPort():获取该URL的端口号
String getProtcol():获取该URL的协议名称
String getQuery():获取该URL的查询字符串部分
URLConnection openConnection():返回一个URLConnection对象,它代表了与URL所引用的远程对象的连接。
InputStream openStream():打开与此URL的连接,并返回一个用于读取该URL资源的InputStream。
4. 基于TCP协议的网络编程
1> 服务器端
使用ServerSocket创建TCP服务器端
ServerSocket类的三个构造器
<1> ServerSocket(int port):用指定的端口port来创建一个ServerSocket。
<2> ServerSocket(int port,int backlog):增加一个最大连接数。
<3> ServerSocket(int port,int backlog, InetAddress localAddr):在机器拥有多个IP地址的情况下,通过localAddr参数来指定将ServerSocket绑定到指定的IP地址。
Socket accept():如果接收到一个客户端Socket的连接请求,该方法将返回一个与客户端Socket对应的Socket;否则该方法将一直处于等待状态,线程也被堵塞。
2> 客户端
使用Socket创建TCP客户端
Socket类的两个构造器
<1> Socket(InetAddress/String remoteAddress, int port):创建连接到指定远程主机,远程端口的Socket,该构造器没有指定本地地址,本地端口,默认使用本地主机的摩热IP地址,默认使用系统动态分配的端口号。
<2> Socket(InetAddress/String remoteAddress, int port, InetAddresslocalAddr, int localPort):创建连接到指定远程主机,远程端口的Socket,并指定本地地址,本地端口,适用于本地主机有多个IP 地址的情况。
3> 输入流和输出流
Socket提供了两个方法来获取输入流和输出流
<1> InputStreamgetInputStream():返回该Socket对象对应的输入流,让程序通过该输入流从Socket中取出数据。
<2> OutputStreamgetOutputStream():返回该Socket对象对应的输出流,让程序通过该输出流向Socket中输出数据。
Java设计的IO体系:不管底层的IO流是怎样的节点流(文件流,网络Socket流等),程序都将其包装成处理流,从而提供更多方便的处理。