java点滴之InetAddress类和InetSocketAddress的使用
来源:互联网 发布:linux内核培训 编辑:程序博客网 时间:2024/04/28 09:54
一简介
InetAddress是Java对IP地址的封装,代表互联网协议(IP)地址;InetAddress对象的获取只能通过静态方法,比如根据主机名获取主机的ip地址封装对象:
1
InetAddress add=InetAddress.getByName(
"BOPZKQZ9SSY5ECY"
);
主机名:BOPZKQZ9SSXXXXX, ip地址:1XX.1XX.2XX.210
InetSocketAddress是SocketAddress的实现子类。
此类实现 IP 套接字地址(IP 地址 + 端口号),不依赖任何协议。在使用Socket来连接服务器时最简单的方式就是直接使用IP和端口,但Socket类中的connect方法并未提供这种方式,而是使用SocketAddress类来向connect方法传递服务器的IP和端口。
SocketAddress只是个抽象类,它除了有一个默认的构造方法外,其它的方法都是abstract的,因此,我们必须使用SocketAddress的子类来建立SocketAddress对象,也就是唯一的子类InetSocketAddress
二主要功能方法
1
2
3
4
5
6
InetAddress address = InetAddress.getLocalHost();
System.out.println(
"主机名:"
+ address.getHostName() +
", ip地址:"
+ address.getHostAddress());
InetAddress add = InetAddress.getByName(
"BOPZKQZ9SSY5ECY"
);
System.out.println(add.getHostAddress());
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
final
Socket socket =
new
Socket();
SocketAddress address =
new
InetSocketAddress(
"www.fortify.net"
,
443
);
try
{
socket.connect(address);
}
catch
(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// 连接远程主机
Thread reader =
new
Thread() {
@Override
public
void
run() {
try
{
byte
[] buffer =
new
byte
[
512
];
InputStream stream = socket.getInputStream();
socket.getInputStream().read(buffer);
}
catch
(Exception ex) {
}
}
};
reader.start();
三两者区别
关键就是InetSocketAddress不基于任何协议,一般用于socket编程中。
表面看InetSocketAddress多了一个端口号,端口的作用:一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过
1
个IP地址来实现。
那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。
实际上是通过“IP地址+端口号”来区分不同的服务的。
1
0 0
- java点滴之InetAddress类和InetSocketAddress的使用
- java点滴之InetAddress类和InetSocketAddress的使用
- java之InetAddress类和InetSocketAddress的使用
- InetAddress类和InetSocketAddress
- Java学习-InetAddress和InetSocketAddress
- InetAddress和InetSocketAddress的区别
- InetAddress类和InetSocketAddress类
- Java学习之网络编程--InetAddress,InetSocketAddress
- host、InetAddress和InetSocketAddress的区别
- InetAddress和InetSocketAddress
- 1.InetAddress和InetSocketAddress
- JAVA网络编程——InetAddress、InetSocketAddress和URL
- InetAddress & InetSocketAddress
- java之InetAddress的使用
- java socket通信总结笔记1——InetAddress和InetSocketAddress
- Java 网络编程中InetAddress类的创建和使用
- Java之InetAddress类
- 网络socket通信——InetAddress和InetSocketAddress
- JQuery网页遮罩模糊插件Foggy
- uml系列(五)——对象图和包图
- 字符串处理函数
- void*和类成员函数指针的相互转换
- hdu 5000 Clone (dp + 找规律)
- java点滴之InetAddress类和InetSocketAddress的使用
- iOS之Undefined symbols for architecture armv7问题解决方法
- XPATH获取带命名空间节点注意事项
- CKplayer 新手入门超简单使用教程
- 整数划分问题(只显示种类数)
- poj3414--Pots(bfs,记录路径)
- Android support-v4、v7、v8、v16、v17包
- 高级定价基本概念理解
- 提高Interface Builder高效工作的8个技巧