java 开发中网络编程之IP、URL详解及实例代码
作者:lqh 发布时间:2023-08-06 10:26:29
标签:java,网络编程
java 网络编程
java.net
类 InetAddress 此类表示互联网协议 (IP) 地址。 会抛出异常 UnknownHostException
直接已知子类:
Inet4Address, Inet6Address
没有构造函数,但是可以通过静态方法获取对象后,在完成其它功能的使用。
例如:
static InetAddress getLocalHost() 返回本地主机。
static InetAddress getByName(String host) 在给定主机名的情况下确定主机的 IP 地址。
static InetAddress[] getAllByName(String host) 在给定主机名的情况下,根据系统上配置的名称服务返回其 IP 地址所组成的数组。
String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。
String getHostName() 获取此 IP 地址的主机名
String getCanonicalHostName() 获取此 IP 地址的完全限定域名。即将主机名解析为IP地址
例子1:
import java.net.*;
class IPDemo
{
public static void main(String[] args) throws Exception
{
// InetAddress localhost = InetAddress.getLocalHost();
// System.out.println("localhost="+localhost); //返回本地主机(主机名和IP地址)
// String hostname = localhost.getHostName(); //返回本地主机中的主机名
// String hostIP = localhost.getHostAddress(); //返回本地主机中的IP地址
// System.out.println("hostname="+hostname+"\n"+"hostIP="+hostIP);
//InetAddress ia = InetAddress.getByName("www.baidu.com");
//System.out.println("name="+ia.getHostName());
//System.out.println("adress="+ia.getHostAddress());
InetAddress[] iad = InetAddress.getAllByName("www.baidu.com");//百度提供的不止一个主机
for(int i=0;i<iad.length;i++)
{
System.out.println("name="+iad[i].getHostName());
System.out.println("adress="+iad[i].getHostAddress());
}
}
}
import java.net.*;
String getFile() 获取此 URL 的文件名。
String getHost() 获取此 URL 的主机名(如果适用)。
String getPath() 获取此 URL 的路径部分。
int getPort() 获取此 URL 的端口号。
String getProtocol() 获取此 URL 的协议名称。
String getQuery() 获取此 URL 的查询部分。
例子2:URL使用
class URLDemo
{
public static void main(String[] args)throws Exception
{
URL url = new URL("http://192.168.1.105:8080/myweb/demo.html?name=haha&age=20");
System.out.println("getProtocol() :"+url.getProtocol());
System.out.println("getHost() :"+url.getHost());
System.out.println("getPort() :"+url.getPort());
System.out.println("getFile() :"+url.getFile());
System.out.println("getPath() :"+url.getPath());
System.out.println("getQuery() :"+url.getQuery());
}
}
例子3:URLConnection连接
import java.io.*;
import java.net.*;
class URLConnectionDemo
{
public static void main(String[] args)throws Exception
{
URL url = new URL("http://192.168.1.105:8080/myweb/demo.html");
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
System.out.println(new String(buf,0,len));
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
0
投稿
猜你喜欢
- 可以静态绑定数据源,这样就自动为DataGridView控件添加 相应的行。假如需要动态为DataGridView控件添加新行,方法有很多种
- 本文实例讲述了Android基于SoftReference缓存图片的方法。分享给大家供大家参考,具体如下:Java中的SoftReferen
- 官网教程一、翻转(镜像)头文件 quick_opencv.h:声明类与公共函数#pragma once#include <opencv
- 在正式的进入主题之前,我们先来了解下深拷贝和前拷贝的概念:浅拷贝:会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝,如果属性是基本
- 1、找准入口,使用ClassPathXmlApplicationContext的构造方法加载配置文件,用于加载classPath下的配置文件
- 在本博客中,可以找到一篇《c#实现输出的字符靠右对齐的示例》它有教大家怎样实现字符串输出进行左齐或者是右对齐。本篇的方法,超简单,是使用st
- 1 自定义类加载器自定义类加载器的代码很简单,只需要继承ClassLoader类,覆写findClass方法即可其默认实现是会抛出一个异常:
- 一、项目要求实现一个通讯录通讯录可以用来存储100个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:添加联系人信息删除指定
- 如何高效地进行数组复制?如果把一个变量值复制给另外一个数组变量,那么2个变量指向托管堆上同一个引用。如果想在托管堆上创建另外的一份数组实例,
- 半路开始看的朋友可以回顾一下前几篇java并发编程专题(一)----线程基础知识java并发编程专题(二)----如何创建并运行java线程
- 背景最近好几个项目在运行过程中客户都提出文件上传大小的限制能否设置的大一些,用户经常需要上传好几个G的资料文件,如图纸,视频等,并且需要在上
- 引言我已经一个多星期没碰过电脑了,今日上班,打开电脑的第一件事就是想着写点什么。反正大家都还沉浸在节后的喜悦中,还没进入工作状态,与其浪费时
- 1.多数据源配置类整体项目结构1).pom.xml 项目依赖<?xml version="1.0" encodin
- 前言不积跬步无以至千里,不积小流,无以成江海在公司一般来说,都只会接触一些CRUD的业务,很多时候可能你想设计很多的代码结构,但是时间不允许
- Feign的作用是将Http请求抽象化为一个Interface客户端,可以调用接口的形式来执行Http请求,以达到简化Http调用的目的。F
- 简介Android给我们提供了一种轻量级的异步任务类AsyncTask。该类中实现异步操作,并提供接口反馈当前异步执行结果及进度,这些接口中
- 话不多说,请看代码:<!DOCTYPE html><html><head> <meta
- 1.最近的项目中,有一个Activity用到Fragment+ViewPager,其中一个fragment中实现了视频播放的功能,包含有Su
- instanceof判断某个对象是否是某个类的实例或者某个类的子类的实例。它的判断方式大概是这样的:public<T> bool
- 自动登录是我们在软件开发时一个非常常见的功能,例如我们登录 QQ 邮箱:很多网站我们在登录的时候都会看到类似的选项,毕竟总让用户输入用户名密