一:IP与InetAddress
在Java中支持网络通讯程序的开发,主要提供了两种通讯协议:TCP协议,UDP协议
在Java中的所有网络程序的开发类都在java.net包中存在
IP地址简介
IP地址表示
IP地址格式
IP地址中存在掩码的功能主要区分网络号和主机号
IP地址分类
InetAddress
InetAddress类主要表示IP地址,这个类有两个子类:Inet4Address,Inet6Address,一个用于表示IPV4,另一个表示IPV6协议
随着网络上的主机越来越多,IPV4地址不足够表示,然后产生了IPV6了
InetAddress类的具体方法可查询API
本机IP查询
package com.linuxidc.网络编程;
import java.net.InetAddress ;
public class InetAddressDemo{
? ? public static void main(String args[]) throws Exception {// 所有异常抛出
? ? ? ? InetAddress locAdd = null ;
? ? ? ? locAdd = InetAddress.getLocalHost() ;// 得到本机
? ? ? ? System.out.println("本机的IP地址:" + locAdd.getHostAddress()) ;
? ? ? ? System.out.println("本机是否可达:" + locAdd.isReachable(5000)) ;
? ? }
};
URL
统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。,可以直接使用此类找到互联网上的资源
?
package com.linuxidc.网络编程;
?
import java.net.URL ;
import java.io.InputStream ;
import java.util.Scanner ;
public class URLDemo{
? ? public static void main(String args[]) throws Exception {? ? // 所有异常抛出
? ? ? ? URL url = new URL("http","www.baidu.com",80,"/") ;
? ? ? ? InputStream input = url.openStream() ;? ? // 打开输入流
? ? ? ? Scanner scan = new Scanner(input) ;? ? ? ? // 实例化Scanner类
? ? ? ? scan.useDelimiter("\n") ;? ? // 设置读取分隔符
? ? ? ? while(scan.hasNext()){
? ? ? ? ? ? System.out.println(scan.next()) ;
? ? ? ? }
? ? }
};
URLConnection是封装远程网络资源的一般方法类,通过它可以与远程服务器连接,检查远程资源的一些属性
package com.linuxidc.网络编程;
URLEncoder与URLDecocder
具体内容
Encoder最早是从电报中而来,使用Encoder进行编码,而使用Decoder进行解码操作在网络中常存在这样的编码和解码的操作。
在使用URL访问的时候,经常会看到在地址之后会有很多其他的附带信息。
例如:http://www.baidu.com/index.php?tn=87041025_adr&ch=33
编码实例
package com.linuxidc.网络编程;
import java.net.URLDecoder ;
import java.net.URLEncoder ;
public class CodeDemo{
? ? public static void main(String args[]) throws Exception{
? ? ? ? String keyWord = "偶my耶" ;? ?
? ? ? ? String encod = URLEncoder.encode(keyWord,"UTF-8") ;? ? // 进行编码的操作
? ? ? ? System.out.println("编码之后的内容:" + encod) ;
? ? ? ? String decod = URLDecoder.decode(encod,"UTF-8") ; // 进行解码操作
? ? ? ? System.out.println("解码之后的内容:" + decod) ;
? ? }
};