Java网络支持

本文介绍了Java中的网络支持,重点讨论了InetAddress的使用,包括获取IP地址和主机名的方法。此外,还讲解了URLEncoder和URLDecoder在字符串编码解码中的作用,以及URL类的功能,如获取资源、建立连接。最后,探讨了代理设置,包括Proxy和ProxySelector的使用,以实现自定义代理选择。
摘要由CSDN通过智能技术生成

网络支持

Java为网络支持提供了 java.net 包。
包括 URL和 URLConnection等类。

使用 InetAddress

InetAddress类代表 IP 地址, 包含2个子类:
Inet4Address : 代表 IPv4, Internet Protocol version 4
Inet6Address: 代表 IPv6, Internet Protocol version 6

InetAddress没有提供构造器, 提供下面两个静态方法获取InetAddress实例。
getByName(String host) : 根据主机名
getByAddress(byte[] addr): 根据原始IP地址
提供下面方法获取对应IP和主机名
getCanonicalHostName():获取全限定名称
getHostAddress():获取IP字符串
getHostName(): 获取主机

在isReachable(timeOut), 测试是否可达地址。
代码实现中–目前其实在WINDOWS平台,并没有采用ICMP协议来完成,而是采用TCP的PORT 7来完成功能的。因而不是通常从们所讲的PING的程序

public class InetAddressTest {
   
    public static void main(String[] args) throws Exception{
   
        InetAddress ip = InetAddress.getByName("www.baidu.com");
        System.out.println("是否可达:" + ip.isReachable(2000));

        //获取ip字符串
        System.out.println(ip.getHostAddress());

        InetAddress local = InetAddress.getByAddress(new byte[]{
   127, 0, 0, 1});
        System.out.println("是否可达:" + local.isReachable(2000));
        System.out.println(local.getCanonicalHostName());

    }
}
//Output
是否可达:false
220.181.111.37
是否可达:true
localhost

URLEncoder

URLEncoder 和 URLDecoder, 完成普通字符串和 application/x-www-form-urlencoded MIME类型之间的转换。
包含西欧字符的普通字符串不会转换, 中文字符会转换, 每个中文字符占两个字节,可以转成2个16进制的数字, “%XX%XX”, 格式。
转换时需要指定字符集, 字符集不同对应的字节数,并不完全相同。

        String urlStr =  URLEncoder.encode("普通", "GBK");
        System.out.println(urlStr);

        String word = URLDecoder.decode(urlStr, "GBK");
        System.out.println(word);

         urlStr =  URLEncoder.encode("普通", 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值