1.IP和InetAddress
IP地址格式:网络地址+ 主机地址
网络号:用于识别主机所在的网络
主机号:用于识别该网络中的主机
在实际中可以使用127.0.0.1表示本机地址,或者使用localhost。
在java中支持网络通讯程序开发,主要提供了两种通讯协议:TCP,UDP
TCP:可靠的连接传输,使用三次握手的方式完成
UDP:不可靠,接收方不一定会接收到
开发类都在java.net包中。
InetAddress类:
主要表示IP地址,有两个子类,Inet4Address(IPV4协议)和Inet4Address(IPV6协议)
public class InetAddressDemo {
public static void main(String[] args) throws IOException {
InetAddress locAdd = null;
InetAddress romAdd = null;
locAdd = InetAddress.getLocalHost();
romAdd = InetAddress.getByName("https://www.baidu.com/");
System.out.println("本机地址:" + locAdd.getHostAddress());
System.out.println("远程地址:" + romAdd.getHostAddress());
System.out.println("本机是否可达:"+ locAdd.isReachable(5000));
}
}
2.URL与 URLConnection
URL:统一资源定位符,可以直接使用此类找到互联网上的资源
URL(String protocol, String host, int port, String file)
根据指定 protocol
、host
、port
号和 file
创建 URL
对象。
openStream()
打开到此 URL
的连接并返回一个用于从该连接读入的 InputStream
。
public class URLDemo {
public static void main(String[] args) throws Exception {
URL url = new URL("http", "news.baidu.com", 80, "/index.html");
InputStream input = url.openStream();
Scanner scan = new Scanner(input);
scan.useDelimiter("\n");
while(scan.hasNext()){
System.out.println(scan.next());
}
}
}
URLConnection:封装访问远程网络资源一般方法的类,通过它可以建立与远程服务器的连接,检查远程资源的属性等。
public class URLConnectionDemo {
public static void main(String[] args) throws Exception {
URL url = new URL("http://news.baidu.com/guonei");
URLConnection urlCon = url.openConnection();
System.out.println("内容大小:" + urlCon.getContentLength());
System.out.println("内容类型:" + urlCon.getContentType());
}
}
3.URLEncoder与URLDecoder
decode(String s, String enc)
使用指定的编码机制对 application/x-www-form-urlencoded
字符串解码。
public class CodeDemo {
public static void main(String[] args) throws Exception {
String name = "爱我中华";
String encode = URLEncoder.encode(name, "UTF-8");
System.out.println("编码后内容:"+encode);
String decode = URLDecoder.decode(encode, "UTF-8");
System.out.println("解码后内容:" + decode);
}
}
运行结果:
编码后内容:%E7%88%B1%E6%88%91%E4%B8%AD%E5%8D%8E
解码后内容:爱我中华