套接字地址

原创 2015年07月09日 12:25:52

一个客户端要发起一次通信,首先必须知道运行服务器端程序的主机的IP地址或者是主机名,主机名必须被解析成数字型地址才能用来通信。

InetAddress类代表了一个网络地址,包括主机名和数字类型的地址信息。InetAddress实例是不可变的,一旦创建,每个实例就始终指向同一个地址。

该类有两个子类: Inet4Address 和 Inet6Address。

下面我给出一个示例程序,该示例程序利用了NetworkInterface类的基本用法。


package com.niepengfei.test;


import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

public class InetAddressExample {
	
	public static void main(String[] args) throws Exception{
		//返回此机器上的所有接口。如果在此机器上找不到任何网络接口,则返回 null,一个主机对应多个网络接口列表,例如有线网接口,无线网接口还有其他类型的接口等
		Enumeration<NetworkInterface> interfaceList = NetworkInterface.getNetworkInterfaces();
		if(interfaceList != null){
			while (interfaceList.hasMoreElements()) {
				//获取每一个网络接口
				NetworkInterface networkInterface = interfaceList.nextElement();
				//打印网络接口的本地名称
				System.out.println("网络接口: "+networkInterface.getName());
				//一个便捷方法,返回一个具有绑定到此网络接口全部或部分 InetAddress 的 Enumeration。 
				//如果存在安全管理器,则对每个 InetAddress 调用其 checkConnect 方法。
				//只有 checkConnect 不抛出 SecurityException 的 InetAddress 才会在 Enumeration 中返回。 
				Enumeration<InetAddress> addrList = networkInterface.getInetAddresses();
				if(!addrList.hasMoreElements()){
					System.out.println("该网络接口没有地址对应。");
				}
				while (addrList.hasMoreElements()) {
					InetAddress inetAddress = addrList.nextElement();
					//返回一个字符串代表主机的数字型地址
					System.out.println("------>" + inetAddress.getHostAddress());
				}
			}
		}
	}

}

测试结果:






版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

名字解析及套接字地址

  • 2015年09月21日 14:45
  • 112KB
  • 下载

C例子:获取套接字地址信息

  • 2016年05月24日 21:34
  • 4KB
  • 下载

Linux 网络编程——原始套接字实例:MAC 地址扫描器

如果 A (192.168.1.1 )向 B (192.168.1.2 )发送一个数据包,那么需要的条件有 ip、port、使用的协议(TCP/UDP)之外还需要 MAC 地址,因为在以太网数据包中 ...

【Linux网络编程】原始套接字实例:MAC 地址扫描器

如果 A (192.168.1.1 )向 B (192.168.1.2 )发送一个数据包,那么需要的条件有 ip、port、使用的协议(TCP/UDP)之外还需要 MAC 地址,因为在以太网数据包中 ...

套接字地址结构

套接字地址结构: A. IPV4套接字地址结构:          IPV4套接字地址结构也通常称为“网际套接字地址结构”,它以sockaddr_in命名,定义在头文件中。           ...

java TCP/IP Socket编程-----基本套接字-----获取本机地址-----笔记3

概述: 开始上硬菜的了,现在我们可以学习如何编写自己的套接字应用程序了。我们首先通过使用InetAddress类和SocketAddress类来示范Java应用程序如何识别网络主机。然后,举了一个使...

Unix套接字地址结构

#include /**IPV4套接字地址结构**/ struct in_addr { in_addr s_addr;//32位IPV4地址,这是无符号整数,网络字节序 }; /*POSIX只...

Unix网络编程(一)-套接字地址结构

本文为学习经验的总结,绝大部分引用自Unix网络编程

UNIX网络编程——套接字选项(心跳检测、绑定地址复用)

[cpp] view plaincopyprint? /* 设置套接字选项周期性消息检测连通性 心跳包、 心博。主要用于长连接。   * 参数:套接字, 1或0开启, ...
  • rethyx
  • rethyx
  • 2014年02月25日 21:53
  • 480

我的网络编程学习之路——套接字地址结构

1.套接字地址结构 大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。每个协议族都定义它自己的套接字地址结构。这些结构的名字均以sockaddr_开头,并以对应每个协议族的唯一后缀结尾。 1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:套接字地址
举报原因:
原因补充:

(最多只允许输入30个字)