一)java中的网络支持
针对网络通信的不同层次,java提供的网络功能四大类:
1、InetAdress:用于标识网络上的硬件资源
2、URL:统一资源定位符 通过URL可以直接读取或者写入网络上的数据
3、Sockets:使用TCP协议实现网络通信的Socket相关的类
4、Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信
二)
InetAddress : 此类表示互联网协议 (IP) 地址。
public static InetAddress getLocalHost() throws UnknownHostException
- 返回本地主机。
-
-
-
public String getHostName()
- 获取此 IP 地址的主机名。
-
// 获取本机的InetAddress实例 InetAddress address = InetAddress.getLocalHost(); System.out.println("计算名:" + address.getHostName()); System.out.println("IP地址:" + address.getHostAddress()); byte[] bytes = address.getAddress();// 获取字节数组形式的IP地址 System.out.println("字节数组形式的IP:" + Arrays.toString(bytes)); System.out.println(address); // 直接输出InetAddress对象 // 根据机器名获取InetAddress实例 // InetAddress address2 = InetAddress.getByName("101.105.144.9"); InetAddress address2 = InetAddress.getByName("wassili"); System.out.println("计算名:" + address2.getHostName()); System.out.println("IP地址:" + address2.getHostAddress());
-
-
-
三)URL(Uniform Resource Locator)
1)URL
代表一个统一资源定位符,它是指向互联网“资源”的指针。
2)由两部分组成:协议名称和资源名称,中间用冒号隔开
3)在java.net包中,提供了URL类来表示URL
public URL(String spec) throws MalformedURLException
-
根据
String
表示形式创建URL
对象 -
-
-
try { //创建一个URL实例 URL csdn = new URL("http://blog.csdn.net"); URL url = new URL(csdn, "/wassili520?username=tom#test"); System.out.println("协议:"+ url.getProtocol()); System.out.println("主机:"+ url.getHost()); //如果未指定端口号,则使用默认的端口号,此时getPort()方法返回值为-1 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()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); }
-
- 4)使用URL读取网页内容
- 1、通过URL对象的openStream()方法可以得到指定资源的输入流
-
public final InputStream openStream() throws IOException
-
打开到此
URL
的连接并返回一个用于从该连接读入的InputStream
。此方法是下面方法的缩写:openConnection().getInputStream()
-
打开到此
-
try { //创建一个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(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
-
-
-
-
-
-
-
-
-