十二. 网络与数据库编程1.IP地址和InetAddress类
  Java语言的优势之一是Java程序能访问网络资源。Java提供一系列的类支持Java程序访问网络资源。
  
  TCP/IP协议和IP地址
  
  为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TCP/IP协议,它是Internet中各方所遵循的公共协议.TCP(Transport Control Protocol)是一种传输控制协议,IP(Internet Protocol)是一种网际协议,TCP/IP代表这两个协议的。
  
  TCP/IP分为四个层次:
  
  网络接口层:负责接收和发送物理帧;
  
  网络层:负责相邻节点之间的通信;
  
  传输层:负责起点到终点的通信;
  
  应用层:提供诸如文件传输、电子邮件等应用程序。
  
  TCP协议将任何网络信息传输当作信息流。例如,机器A上的一个长报文发送到机器B,发送端A需要将数据分片,把一片片数据分别打包发送。数据包有一个头,指明该数据包发往何处、凶中数据在接收序列中所处的位置。每个包都按照IP地址提供的目的地从一个台机器传送到另一台机器,或从一个网络节点传送到另一个网络节点。在接收端B,这些数据包都能够按照正确的顺序重新组装起来。
  
  TCP/IP协议是一个协议族,由一组协议组成,主要包含以下更具体的协议:
  
  Telnet(远程登录):允许一台计算机用户登录到另一台远程计算机上,使远程操作如同在本地计算机上操作一样。
  
  FTP(File Transfer protocol,文件传输协议):允许用户将远程主机上的文件复制到自己的计算机上。
  
  SMTP(simple Mail Transfer Protocol,简单邮件传输协议):用于传输电子邮件。
  
  NFS(Network file Server,网络文件服务器):使多台计算机透明地访问彼此的目录。
  
  HTTP:一种超文本传输协议,它是基于TCP/IP协议的,是WWW浏览器和服务器之间应用层的通信协议。HTTP是一种通用、无状态、面向对象的协议。HTTP会话(事务)包括四个步骤:连接(Connection)、请求(Request)、应答(Response)和关闭(Close)。
  
  Java语言可编写低层的网络应用。例如,传输文件,建立邮件控制器,处理网络数据等。Java语言支持的Internet协议有ftp、telnet、www等,支持网络通信的软件都在java.net包中,例如,java.net.ftp、java.net.www等。
  
  IP地址用于指明因特网上的一台计算机在网络中的地址,用32位二进制代码表示一个网络地址。地址分A、B、C、D、E五类,常用的是A、B、C三类:
  
  A(1.0.0.0-126.255.255.255):0,7位网络号,后24位为主机号;
  
  B(128.0.0.0-191.255.255.255):10,14位网络号,后16位为主机号;
  
  C(192.0.0.0-223.255.255.255):110,21位网络号,后8位为主机号;
  
  D(224.0.0.0-239.255.255.255):1110,28位多点广播组标号;
  
  E(240.0.0.0-254.255.255.255):1111,保留试验使用。
  
  通常,IP地址用四段十进制数表示(8位一段)。例如:
  
  116.255.226.187
  
  或用文字域名表示。例如:
  
  www.weixueyuan.net
  
  在因特网上,域名服务器(Domain Name Server,DNS)执行文字名称到二进制网络地址的映射。
  
  InetAddress类
  
  Java.net包中有InetAddress类的定义,InetAddress类的对象用于IP地址和域名,该类提供以下方法:
  
  getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:www.sina.com.cn/202.108.37.40;
  
  String getHostName():获取InetAddress对象的域名;
  
  String getHostAddress():获取InetAddress对象的IP地址;
  
  getLocalHost():获得一个InetAddress对象,该对象含有本地机的域名和IP地址。
  
  【例 13-1】 说明Inetaddress类的用法的应用程序。程序演示如何获取www.weixueyuan.net的域名和IP地址。
  
  Import java.net.*;
  
  Class Example10_1{
  
  Public static void main(String args[]){
  
  Try{ //以下代码通过域名建立InetAddress对象:
  
  InetAddress addr = InetAddress.getByname(“www.weixueyuan.net”);
  
  String domainName = addr.getHostName();//获得主机名
  
  String IPName = addr.getHostAddress();//获得IP地址
  
  System.out.println(domainName);
  
  System.out.println www.lieqibiji.com (IPName);
  
  }catch(UnknownHostException e){
  
  e.printStackTrace();
  
  }
  
  }
  
  }
  
  运行结果为:
  
  www.weixueyuan.net
  
  116.255.226.187
十二. 网络与数据库编程1.IP地址和InetAddress类的更多相关文章
- Java知多少(103)网络编程之IP地址和InetAddress类
		
Java语言的优势之一是Java程序能访问网络资源.Java提供一系列的类支持Java程序访问网络资源. TCP/IP协议和IP地址 为了进行网络通信,通信双方必须遵守通信协议.目前最广泛使用的是TC ...
 - 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条
		
http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...
 - Java基础学习笔记二十二 网络编程
		
络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规则 ...
 - 04747_Java语言程序设计(一)_第10章_网络与数据库编程基础
		
例10.1说明InetAddress类的用法的应用程序. public class Example10_1 { public static void main(String args[]) { try ...
 - Scala入门到精通——第二十九节 Scala数据库编程
		
本节主要内容 Scala Mavenproject的创建 Scala JDBC方式訪问MySQL Slick简单介绍 Slick数据库编程实战 SQL与Slick相互转换 本课程在多数内容是在官方教程 ...
 - 026.1 网络编程 获取IP地址
		
前面提及的:OSI,TCP-IP,IP地址,端口,协议概念我都清楚,所以我直接跳过前面,来到使用这里. //获取本机IP InetAddress ip = InetAddress.getLocalHo ...
 - openstack nova数据库计算结点IP地址
		
最近遇到一个问题就是在控制结点上查找nova数据库中 select * from compute_nodes\G;中出现IP地址一直是127.0.0.1不是计算结点的IP,就算修改成计算结点的IP,也 ...
 - 如何在数据库中存储IP地址
		
最近改一个比较老的web系统,该系统是通过账号或者ip地址(白名单)验证限制访问权限的. 由于运营的时间比较长了,发现进入网站巨卡... 原因就是:之前的数据库(sqlserver)存储ip地址是用的 ...
 - Centos7(Linux)网络配置,自动获取ip地址
		
Centos7.0 Vmware 网络桥接配置,利用DHCP自动获取ip地址 首先要将Vmware10.0.3设置为桥接模式. CentOS 7.0默认安装好之后是没有自动开启网络连接的! cd / ...
 
随机推荐
- ES6新增的let与const
			
1.const 声明常量,一旦声明必须立马赋值,否则报错 const PI = 3.14 const PI; //报错:Uncaught SyntaxError: Missing initialize ...
 - splay:优雅的区间暴力!
			
万年不更的blog主更新啦!主要是最近实在忙,好不容易才从划水做题的时间中抽出一段时间来写这篇blog 首先声明:这篇blog写的肯定会很基础...因为身为一个蒟蒻深知在茫茫大海中找到一个自己完全能够 ...
 - 5-3 Linux内核计时、延时函数与内核定时器【转】
			
转自:http://www.xuebuyuan.com/510594.html 5-3 Linux内核计时.延时函数与内核定时器 计时 1. 内核时钟 1.1 内核通过定时器(timer)中断来跟 ...
 - caffe Python API 之激活函数ReLU
			
import sys import os sys.path.append("/projects/caffe-ssd/python") import caffe net = caff ...
 - python中eval函数使用
			
把字符串转换为字典: s = "{'a':1}" eval(s)
 - Restful Framework (四)
			
目录 一.分页 二.视图 三.路由 四.渲染器 一.分页 回到顶部 试问如果当数据量特别大的时候,你是怎么解决分页的? 方式a.记录当前访问页数的数据id 方式b.最多显示120页等 方式c.只显示上 ...
 - mysql:视图、触发器、事务、存储、函数、流程控制
			
阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 回到顶部 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只 ...
 - 数据库之各种键(Key)
			
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键候选键(candidate key):不含有多余属性的超键称为候选键主键(primary key):用户选作元组标识的一个候 ...
 - 使用GitLab进行落地项目的管理,并且自动更新、重启、回滚
			
Gitlab 清空项目历史commit,节省空间 http://blog.csdn.net/dounine/article/details/77840416?locationNum=6&f ...
 - Linux下服务器搭建
			
一.安装前准备工作 yum -y install gcc yum -y install gcc-c++ yum -y install make yum -y install ncurses-d ...