网络编程InetAddress类的使用

网络编程的基本知识

网络通讯要素
. IP地址

. 网络中设备的标识
. 不易记忆,可用主机名
. 本地回环地址:127.0.0.1 主机名:localhost

. 端口号

. 用于标识进程的逻辑地址,不同进程的标识
. 有效端口:0~65535,其中0~1024系统使用或保留端口。


. 传输协议

. 通讯的规则
. 常见协议:TCP,UDP

UDP
. 将数据及源和目的封装成数据包中,不需要建立连接
. 每个数据报的大小在限制在64k内
. 因无连接,是不可靠协议
. 不需要建立连接,速度快

TCP
. 建立连接,形成传输数据的通道。
. 在连接中进行大数据量传输
. 通过三次握手完成连接,是可靠协议
. 必须建立连接,效率会稍低


Socket流机制

Socket就是为网络服务提供的一种机制。
通信的两端都有Socket。
网络通信其实就是Socket间的通信。
数据在两个Socket间通过IO传输。

InetAddress类
InetAddress的构造函数不是公开的(public),所以需要通过它提供的静态方法来获取,有以下的方法:

static InetAddress[] getAllByName(String host)
:是根据主机名返回其可能的所有InetAddress对象,保存在一个数组中

static InetAddress getByName(String host)
:在给定主机名的情况下确定主机的 IP 地址

static InetAddress getLocalHost()
:返回本地主机。

String getHostAddress() 
:返回IP地址字符串(以文本表现形式).

String getHostName()
:获取此ip地址的主机名.

注意到这些方法可能会抛出的异常。如果安全管理器不允许访问DNS服务器或禁止网络连接,SecurityException会抛出,如果找不到对应主机的IP地址,或者发生其他网络I/O错误,这些方法会抛出UnknowHostException。

代码如下:
package network;

import java.net.InetAddress;
import java.net.UnknownHostException;


public class NetWork {
public  static void main(String [] args) throws UnknownHostException{
//获取本地主机ip,和主机名
// InetAddress myID = InetAddress .getLocalHost();
// String a = myID.getHostAddress();
// String b = myID.getHostName();
// System. out.println(a);
// System. out.println(b);
//获取网络中的主机域名和 ip地址 
InetAddress netWorkID = InetAddress.getByName("www.baidu.com");//
System. out.println(netWorkID.getHostName());
System. out.println(netWorkID.getHostAddress());
System. out.println("--------");
System. out.println(netWorkID);
InetAddress[] addresses=InetAddress.getAllByName("www.baidu.com");
for(InetAddress addr:addresses){
System.out.println(addr);
}
}



以上知识,都是自己百度总结的,有什么不对的地方,希望大家可以指出.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java_wucao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值