JavaSocket的API应用

版权声明:本文为博主原创文章,未经博主允许不得转载哦。 https://blog.csdn.net/a464700300/article/details/66975276

Java中的网络支持

针对网络通信的不同层次,Java提供的网络功能有四类

  1. InetAddress:用于标识网络上的硬件资源
  2. URL:统一资源定位符,通过URL可以直接读取或写入网络上的数据
  3. Sockets:使用TCP协议实现网络通信的Socket相关的类
  4. Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信

InetAddress的使用

//获取本机的InetAddress实例
InetAddress address = InetAddress.getLocalHost();
System.out.println("本机名:"+address.getHostName());
System.out.println("IP地址:"+address.getHostAddress());

//获取IP地址字节数组的形式
byte[] bytes = address.getAddress();
System.out.println("字节数组IP:"+bytes.toString());
//直接输出InetAddress对象(本机名+IP)
System.out.println(address);

//根据主机名获取InetAddress实例
InetAddress address1=InetAddress.getByName("USER-20170104RF");
//根据IP地址获取InetAddress实例
InetAddress address1=InetAddress.getByName("192.168.0.1");

URL的使用

url由两部分组成,协议名称和资源名称

//创建一个URL实例
URL i = new URL("http://www.baidu.com");
//根据上一个实例创建一个新实例,?后表示参数,#表示锚点
URL url = new URL(i,"/index.html?username=tom#test");

System.out.println("协议:"+url.getProtocol());
System.out.println("主机:"+url.getHost());
System.out.println("端口:"+url.getPort());
System.out.println("文件路径:"+url.getPath());
System.out.println("文件名:"+url.getFile());
System.out.println("相对路径:"+url.getRef());
System.out.println("查询字符串 :"+url.getQuery());

使用URL读取网页内容

通过URL对象的openStream()方法可以得到指定资源的输入流

        //创建一个URL实例
        URL url=new URL("http://www.baidu.com");
        //通过URL的openStream方法获取URL对象所表示的资源的字节输入流
        InputStream is=url.openStream();
        //字节输入流转化为字符输入流
        InputStreamReader isr=new InputStreamReader(is,"utf-8");
        //为字符输入流添加缓冲,提高效率
        BufferedReader br=new BufferedReader(isr);

        //读取数据
        String data=br.readLine();
        while(data != null){
            System.out.println(data);
            data=br.readLine();
        }
        br.close();
        isr.close();
        is.close();
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页