版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/82776083
java中的网络支持
1.InetAddress:用于标识网络上的硬件资源
2.URL:统一资源定位符 通过URL可以直接读取或写入网络上的数据
3.Sockets 使用TCP协议实现网络通信的Socket相关的类
4Datagram:使用UDP协议,将数据保存在数据报中,通过网络进行通信
InetAddress类
InetAddress类用于标识网络上的硬件资源表示互联网协议IP地址
没有构造方法,通过调用static方法获取实例
1.getLocalHost返回本地主机。
public static InetAddress getLocalHost() throws UnknownHostException
返回:本地主机的 IP 地址。
抛出:UnknownHostException - 如果找不到 host 的任何 IP 地址。
使用:
//获取实例
InetAddress address = InetAddress.getLoacalHost();
address.getHostName();//获取主机名
address.getHostAddress();//获取本机ip
2.根据计算机名/ip获取实例
InetAddress.getByName(“主机名”);
InetAddress.getByName(“IP地址”);
java.net.URL类
统一资源定位符
try{
URL myURL = new URL("https://blog.csdn.net");
//也可以加?的参数 和#的锚点
URL myURL2 = new URL(myURL ,"/qq_36762677");
myURL2.getProtocol();//获取协议名
myURL2.getPort();//获取端口号,默认端口号返回-1
myURL2.getHost();//获取主机
}catch(Exception e){
}
使用URL读取页面内容[java爬虫]
try{
URL url = new URL("https://blog.csdn.net/qq_36762677");
//字节输入流保存内容
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();
}
socket编程
- 中文名:套接字
- 基于TCP的网络通信
- TCP面向连接的,可靠地,有序的,字节流方式发送数据
java中的类
客户端Socket
服务端java.net.ServerSocket
实现
服务器端:============================================================
code:
ServerSocket serverSocket = new ServerSocket(8888);//port
Socket socket = serverSocket .accept();
InputStream is = socket.getInputStream();//字节输入流
//提高性能,变字符流
InputStreamReader isr = new InputStreamReader(is);
//为字符输入流添加缓冲
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();
socket.close();
serverSocket.close();
客户端:=================================================