网络基础
IP地址:用于区分网络上每一台主机。
网络协议:IPV4、IPV6。用于统一通信语言标准。
端口号:0~65535,(0~1023内定)用于区分计算机上的不同程序。
TCP/IP协议:应用最广的协议。TCP(传输控制协议),IP(互联网协议)
网络编程:程序通过网络进行连接。位于java.net包中
java.net 包中提供了两种常见的网络协议的支持:
- TCP:传输控制协议,保障了应用程序之间的可靠通信。常用于互联网协议,被称 TCP / IP
- UDP:用户数据报协议,一个无连接的协议。提供了应用程序之间要发送的数据的数据报
java网络编程中的四大类
- InetAddress:用于表示IP地址
- URL:读写网络资源
- Socket:实现网络通信(TCP)
- Datagram:保存数据报中,进行通信(UDP)
InetAddress类
常用方法
- static InetAddress getLocalHost() //返回本地主机实例
- static InetAddress getByAddress(byte[] addr) //输入ip地址,返回对应主机实例
- static InetAddress getByName(String host) //输入主机名,返回对应主机实例
- static InetAddress getByAddress(String host, byte[] addr) //输入主机名,ip地址,返回主机实例
- byte[] getAddress() //返回主机ip地址
- String getHostAddress() //返回主机地址
- String getHostName() //返回主机名
- boolean isAnyLocalAddress() //检查 InetAddress 是否是通配符地址的实用例行程序。
- boolean isLinkLocalAddress() //检查 InetAddress 是否是链接本地地址的实用例行程序。
- boolean isLoopbackAddress() //检查 InetAddress 是否是回送地址的实用例行程序。
URL
统一资源定位符:表示网络上资源,它是指向互联网“资源”的指针。
eg.:协议 : 资源名
https://www.baidu.com/index.html
构造方法:
- URL(String spec)
- URL(String protocol, String host, int port, String file)
- URL(String protocol, String host, int port, String file, URLStreamHandler handler)
- URL(String protocol, String host, String file)
- URL(URL context, String spec)
- URL(URL context, String spec, URLStreamHandler handler)
eg.:
URL test = new URL("http://www.baidu.com");
URL url = new URL(test,"/index.html?username=tom#test");// #后面表示锚点,?后面表示参数
常用方法:
- Object getContent() //获取此URL内容
- int getDefaultPort() //获取此URL默认端口
- int getPort() //获取此端口,没有指定则默认-1
- String getFile() // 获取此URL文件名
- String getHost() //获取主机名
- String getPath() //获取该路径
- String getProtocol() //获取此协议名
- String getQuery() //获取URL查询部分
- String getRef() //获取URL的锚点(引用),获取相对路径
- String getUserInfo() //获取URL的userInfo部分
- URLConnection openConnection() //URL 所引用的远程对象的连接。
- InputStream openStream() //打开此 URL连接,返回从该连接读入的 InputStream
- protected void set(String protocol, String host, int port, String file, String ref) //设置 URL 的字段
实例应用——获取网页信息
//获取网页信息
import java.io.*;
import java.net.*;
public class TestURL {
public static void main(String[] args) {
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
try {
URL url = new URL("http://www.baidu.com");
inputStream = url.openStream();//获取网页的字节流
inputStreamReader = new InputStreamReader(inputStream, "utf-8");//转化为字符流
bufferedReader = new BufferedReader(inputStreamReader);//提高读写效率
String data = bufferedReader.readLine();
while (data != null) {
System.out.println(data);
data = bufferedReader.readLine();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bufferedReader != null) {
bufferedReader.close();
}
if (inputStreamReader != null) {
inputStreamReader.close();
}
if (inputStream != null) {
inputStream.close();
}
} catch (Exception e) {
}
}
}
}