网络编程(ip地址和inetAddress类、统一资源定位符URL)

2024-03-02 21:18

本文主要是介绍网络编程(ip地址和inetAddress类、统一资源定位符URL),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


TCP/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地址:

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位一段)。例如:192.168.1.23
或用文字域名表示。例如:www.baidu.com   在因特网上,域名服务器(Domain Name Server,DNS)执行文字名称到二进制网络地址的映射

InetAddress类:

Java.net包中有InetAddress类的定义,InetAddress类的对象用于IP地址和域名,方法:
getByName(String s):获得一个InetAddress 类的对象,该对象中含有主机的IP地址和域名,该对象用如下格式表示它包含的信息:
String getHostName():获取InetAddress对象的域名;
String getHostAddress():获取InetAddress对象的IP地址;
getLocalHost():获得一个InetAddress对象,该对象含有本地机的域名和IP地址。

package cn.url.day24;import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;public class URLTest {public static void main(String[] args){//UrlDemo();ipDemo();}/*** 通过网址(地址)获取某域内内容  */public static void UrlDemo() {InputStreamReader isr = null;// 作用域达不到,放此处值空try {// 因创建URL对象可能会产生MalformedURLException异常,需要捕捉网址错误异常// URL url = new URL("http://192.168.5.10/webapp/hello.txt");URL url = new URL("https://123.sogou.com/");//创建一个URL对象// InputStream is = url.openStream();//打开地址,需要把地址的内容输入到程序URLConnection uc = url.openConnection();//获得URLConnection对象InputStream is = uc.getInputStream();//获得从远程主机获取信息的InputStream流对象。isr = new InputStreamReader(is);// 把输入到程序的内容读出来int c;while ((c = isr.read()) != -1) {System.out.print((char) c);}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {try {if (isr != null)isr.close();} catch (IOException e) {e.printStackTrace();}}}/*** 获取ip地址及域名  控制台:* 	www.baidu.com180.97.33.107计算机名/计算机ip*/public static void ipDemo(){try {InetAddress ia = InetAddress.getByName("www.baidu.com");String name = ia.getHostName();//获取InetAddress对象的域名;String ip = ia.getHostAddress();//获取InetAddress对象的IP地址;//本机计算机名和ip地址InetAddress s = ia.getLocalHost();//获得一个InetAddress对象,该对象含有本地机的域名和IP地址。System.out.println(name);System.out.println(ip);System.out.println(s);} catch (UnknownHostException e) {e.printStackTrace();}}
}

二、统一资源定位符URL

统一资源定位符URL(Uniform Resource Locator)是www客户机访问Internet时用来标识资源的名字和地址。超文本链路由统一资源定位符URL维持。URL的格式是:

<METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE>

其中:Method是传输协议:HOSTNAME是文档和服务器所在的Internet主机名(域名系统中DNS中的点地址);PORT是服务端口号(可省略);PATH是路径名,FILE是文件名。例如:

http://www.xinhua.net/(http是协议名,www.xinhua.net是主机名)

http://www.xinhua.net/view/6079.html (www.xinhua.net是主机名,view/6079.html是文件路径和文件名)

Java.net包有URL类,一个URL对象可以表示一个网络资源。程序利用URL对象能实现Internet寻址、网络资源的定位连接、在客户机与服务器之间直接访问等。URL类的构造方法是
URL(String s)
其中,s指出网络中的一个资源。
利用URL对象访问网上资源的方法是:先创建URL对象, 因创建URL对象可能会产生MalformedURLException异常。所以,创建URL对象的代码应出现在try…catch语句块中,以便能捕捉网址错误异常。(见上UrlDemo方法)

URLConnection类

要接收和发关信息还要用URLConnection类,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。

先要创建一个URL对象,然后利用URL对象的openConnection()方法,从系统获得一个URLConnection对象。程序有了URLConnection对象后,就可使用URLConnection类提供的以下方法获得流对象和实现网络连接:
getOutputStream():获得向远程主机发送信息的OutputStream流对象;
getInputStream():获得从远程主机获取信息的InputStream流对象。有了网络连接的输入和输出流,程序就可实现远程通信;
connect():设置网络连接。

信息的发送和接收

发送和接收信息要获得流对象,并由流对象创建输入或输出数据流对象。然后,就可以用流的方法访问网上资源。如同本地数据流一样,网上资源使用结束后,数据流也应及时关闭。

这篇关于网络编程(ip地址和inetAddress类、统一资源定位符URL)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767452

相关文章

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

Linux网络配置之网桥和虚拟网络的配置指南

《Linux网络配置之网桥和虚拟网络的配置指南》这篇文章主要为大家详细介绍了Linux中配置网桥和虚拟网络的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、网桥的配置在linux系统中配置一个新的网桥主要涉及以下几个步骤:1.为yum仓库做准备,安装组件epel-re

python如何下载网络文件到本地指定文件夹

《python如何下载网络文件到本地指定文件夹》这篇文章主要为大家详细介绍了python如何实现下载网络文件到本地指定文件夹,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下...  在python中下载文件到本地指定文件夹可以通过以下步骤实现,使用requests库处理HTTP请求,并结合o

Linux高并发场景下的网络参数调优实战指南

《Linux高并发场景下的网络参数调优实战指南》在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃,本文基于真实案例分析,从参数解读、问题诊断到优... 目录一、问题背景:当并发连接遇上性能瓶颈1.1 案例环境1.2 初始参数分析二、深度诊断:连接状态与

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I