1.什么是网络?

在计算机领域中网络是信息传输、接受、共享的虚拟平台。通过它吧各个点、面、体联系到一起

从而实现这些资源的共享

作用:信息传输,资源共享

优点:共享资源免费

2.OSI七层参考模型和TCP/IP四层参考模型

计算机网络是指由通信线路互相连接的许多自主工作的计算机构成的集合体,各个部件之间以何种规则进行通信,就是网络模型研究的问题

网络模型一般指OSI七层参考模型和TCP/IP四层参考模型。这两个模型在网络中应用最为广泛。

OSI七层参考模型:应用层/表示层/会话层/传输层/网络层/数据链路层/物理层

TCP/IP四层参考模型:应用层、传输层、IP层【网际层】、网路接口层【网络连入层】

3.计算机网络四要素

1.IP地址

处于网络中的通信设备(电脑、手机、电视等),都会分配一个IP地址,这些设备在通信之前,首先要通过通信设备的网卡接入到网络中,而这个网卡属于一个硬件,并且所有网卡在出厂的时候,都有一个固定的网卡地址,并且这个网卡地址(MAC地址)全球唯一。

查看网卡地址(MAC地址)

1.在命令提示行窗口输入ipconfig/all可以查询ip(MAC地址)相关的信息详情

2.Linux操作系统使用ifconfig可以查询ip(mac地址)相关的详细信息

固定的网卡地址(MAC地址)与IP地址的关系

例如: 固定的网卡地址((MAC地址))----[00-0C-29-7A-CA-8E]
                   IP地址-----------------------[192.168.1.220]

所有网卡地址都有一个唯一的物理地址,但是这个地址非常的不好记,于是给每个网卡又分了一个逻辑(IP)地址,这个逻辑地址就是IP地址,通信的过程中,就可以根据这个逻辑地址找到处于网络中的这台设备

IP地址也是对处于网络中的某个通信终端的标识。

IP地址与域名的关系

由于IP地址也不容易记忆,因此又给每个绑定了一个名称,这个名称被称为(域名)。

[00-0C-29-7A-CA-8E]----[192.168.1.220]----https://www.baidu.com/[域名]

本机默认的ip地址是127.0.0.1;它有一个对应的默认的域名localhost。

2.DNS服务器【域名解析服务器】

域名解析有2步:

1.本地解析:

在我们操作系统中,有一个hosts文件,当输入域名之后,首先会自hosts文件中找到有没有当前域名对应的IP地址,有就会使用这个IP地址。C:\Windows\System32\drivers\etc\hosts”

2.DNS服务器解析:

如果第一步解析失败了,会到网络中的DNS服务器上进行解析。DNS服务器中会将全球所有的域名和IP设置在其中。如果DNS服务器解析失败,说明当前的域名有问题的。

3.协议

协议:双方通信的时候需要遵守通信的规则。后期我们会遇到很多协议(高级协议,应用协议:http、ftp、https )

我们在Java中网络编程中介绍的协议就属于底层协议[TCP/UDP],所有的高级协议都是基于底层协议。

4.端口

通过IP可以找到网络中具体哪个通信终端的设备,而具体需要访问的这个设备中的哪个资源(软件)信息,由于运行的资源(软件)肯定很多,所以每个资源必须再给一个唯一的编号(标识)通过这个标识才能保证我们没有错误的访问指定IP地址的具体那个资源上

端口:是一台设备(电脑、手机登)上某个应用程序的唯一标识。设备中运行的任何一个软件,只要启动,就肯定会有一个唯一的编号与其整个软件绑定。

端口从0开始到65535之间。0到1024之间的端口数字已经分配给本机的操作系统的应用程序占用,因此后期我们书写程序如果需要绑定端口,这时必须大于1024,端口其实就是进入本台计算时,访问本台计算机所运行程序的入口。

 4.InetAddress类的使用

java.net 包类 InetAddress  此类表示互联网协议 (IP) 地址。

public class InetAddress implements java.io.Serializable

InetAddress类的构方法

缺省修饰符 InetAddress() {}

我们在自己的Java程序中是不能通过new+构造方法的方式创建出InetAddress类对象。

我们就需要使用下面这两个静态方法来得到InetAddress类对象。
    static InetAddress getLocalHost() 返回包含有本机IP地址的InetAddress对象。

static InetAddress getByName(String host) 根据域名得到包含有该域名对应ip地址的              InetAddress对象。

实例方法:

String getHostAddress() 返回 IP 地址字符串(以文本表现形式)。
      String getHostName() 获取此 IP 地址的主机名

例如:

package com.wangxing.test1;import java.net.InetAddress;
import java.net.UnknownHostException;public class TestMain {public static void main(String[] args) throws UnknownHostException {//得到本机IP地址和计算机名称//得到包含有本机IP地址的InetAddress对象//static InetAddress getLocalHost() 返回包含有本机IP地址的InetAddress对象InetAddress bjInetAddress=InetAddress.getLocalHost();//得到本机IP地址String benjiIp=bjInetAddress.getHostAddress();System.out.println("本机IP:"+benjiIp);//得到本机计算机名String benjiname=bjInetAddress.getHostName();System.out.println("本机计算机名称:"+benjiname);//得到百度的IP地址和计算机名String host="baidu.com";//static InetAddress getByName(String host) 根据域名得到包含有该域名对应ip地址的InetAddress对象。InetAddress baiduInetAddress=InetAddress.getByName(host);//得到百度的ip地址String babiduIP=baiduInetAddress.getHostAddress();System.out.println("百度IP:"+benjiIp);//得到百度的计算机名String baiduname=baiduInetAddress.getHostName();System.out.println("百度计算名:"+baiduname);}
}

 5.URL与URI的区别?

1.URI---统一资源标识符(Uniform Resource Identifier, URI),表示的是web上每一种可用的资源,如HTML文档、图像。视频片段、程序等都由一个URL进行标识的

URL通常由三部分组成:

1.资源的命名机制;
2.存放资源的主机名;
3.资源自身的名称。

2.URL是URI的一个子集。它是Uniform Resource Locator的缩写,译为“统一资源定位符”。

采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

URL是URI概念的一种实现方式。

URL的格式由三部分组成:

1.第一部分是协议(或称为服务方式)

2.第二部分是存有该资源的主机IP地址

3.第三部分是主机资源的具体地址,如目录和文件名等

第一部分和第二部分用“://”符号隔开,
    第二部分和第三部分用“/”符号隔开。
    第一部分和第二部分是不可缺少的,第三部分有时可以省略。

例如:https://www.baidu.com/index.html---资源访问地址

从上面的例子来看,你可能觉得URI和URL可能是相同的概念,其实并不是,URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

6.Java中的URL类  【访问网络资源】

URL构造方法:

URL(String spec)--从String表示形成一个URL对象

URL(String protocol,String host,String file)--创建URL从指定对象potocol,host,port数,和file

实例方法:

URLConnection  openConnection()--返回一个URLConnection实例,表示与URL引用的远程对象的URL(打开一个URL连接)

InputStream    openStream() 打开与此 URL ,并返回一个 InputStream ,以便从该连接读取资源。(打开与此URL关联的InputStream )

例如:

package com.wangxing.test2;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;public class TestMain {public static void main(String[] args) throws IOException{String path="https://img14.360buyimg.com/n0/jfs/t1/219743/31/983/108306/616e758aEc8fea4d3/1a18abe36a5d8ce9.jpg";//创建URL对象URL url=new URL(path);//创建输入流InputStream in=url.openStream();//保存读取来得具体数据的字节数组byte data[]=new byte[1024];//保存读取来的具体字节数int temp=0;//创建一个文件File file=new File("D:"+File.separator+"test1.jpg");//创建输出流 数据输出到文件中FileOutputStream fileout=new FileOutputStream(file);//读取数据while((temp=in.read(data))!=-1){fileout.write(data,0,temp);}fileout.close();in.close();}
}
package com.wangxing.test2;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;public class TestMain2 {public static void main(String[] args) throws IOException{String path="https://img14.360buyimg.com/n0/jfs/t1/219743/31/983/108306/616e758aEc8fea4d3/1a18abe36a5d8ce9.jpg";//创建URL对象URL url=new URL(path);//创建输入流InputStream in=url.openStream();//保存读取来得具体数据的字节数组byte data[]=new byte[1024];//保存读取来的具体字节数int temp=0;//创建内存输出流对象。讲数据输出到内存中ByteArrayOutputStream out=new ByteArrayOutputStream();//读取数据while((temp=in.read(data))!=-1){out.write(data,0,temp);}//创建一个文件File file=new File("D:"+File.separator+"test.jpg");//创建输出流 数据输出到文件中FileOutputStream fileout=new FileOutputStream(file);fileout.write(out.toByteArray());fileout.close();out.close();in.close();}
}

Java---网络编程相关推荐

  1. java 密钥工厂 desede_20145212 实验五《Java网络编程》

    20145212 实验五<Java网络编程> 一.实验内容1.运行下载的TCP代码,结对进行,一人服务器,一人客户端: 2.利用加解密代码包,编译运行代码,一人加密,一人解密: 3.集成代 ...

  2. Java学习总结:52(Java网络编程)

    Java网络编程 开发第一个网络程序 java.net包提供了网络编程有关的开发工具类,在此包中有一下两个主要的核心操作类. ServerSocket类:是一个封装支持的TCP协议的操作类,主要工作在 ...

  3. Java - 网络编程(NetWork)

    Java - 网络编程(NetWork) 一.java.net包下的 InetAddress 类的使用: > 一个 InetAddress 代表着一个IP地址 > 主要用来查看本机的IP和 ...

  4. 【Java】 Java网络编程总结

     一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...

  5. Java网络编程笔记5

    在Java网络编程笔记4中我们看到了客户端与服务器通信的过程,只是在前面的程序只是单个客户端与服务器通信 的例子. 接下来我们看如何实现多个客户端与服务器通信,对于服务器来说,它要为每个客户端请求的S ...

  6. 实验五 Java网络编程及安全 实验报告 20135232王玥

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序与设计         班级:1352 姓名:王玥 学号:20135232 成绩:             指导 ...

  7. NIO详解(一):java网络编程IO总结(BIO、NIO、AIO)

    1.基本概念 在Java网络通信中,最基本的概念就是Socket编程了.Socket又称"套接字" 向网络发出请求或者应答网络请求. Socket 和ServerSocket类库位 ...

  8. 04.Java网络编程(转载)

    1.网络编程 1.1计算机网络概述 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输. 按照计算机网络的定义,通过一定的物理设备将处于不同位置的计算机连接起来组成的网络,这个网络中包含 ...

  9. python网络编程视频教程_Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密)...

    Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密) 全面理解BIO/NIO/AIO 网络层编程,是每一个开发者都要面对的技术.课程为解决大家学习网络层知识的难题, ...

  10. 你所需要的java网络编程大总结

    好好学java java知识分享/学习教程免费分享 关注 精彩内容 你所需要的java全套视频教程 你所需要的java电子图书 你所需要的大数据视频教程 你所需要的java练习项目 如 / 梦 上个月 ...

最新文章

  1. # Error in colSums(iris) : ‘x‘ must be numeric,# Error in rowSums(iris) : ‘x‘ must be numeric
  2. 免费短信猫开发包dll函数解析及下载
  3. Cesium调用 WMS 、WMTS 服务
  4. c#_foreach遍历
  5. 世界机器人大会进入最后一天,最受市民关注的是它!
  6. 全国计算机等级2级试题,全国计算机等级考试二级QBASIC试题
  7. android 二级列表拖动排序_Excel的数据透视表六种排序方法
  8. cmd copy命令 文件复制【转】
  9. python之闭包的实现
  10. 掌握大数据数据分析师吗?_要掌握您的数据吗? 这就是为什么您应该关心元数据的原因...
  11. iOS MD5 (消息摘要算法5)
  12. Linux - which xxx - 查找执行的命令所在的路径
  13. 软件测试的目标及组织测试过程
  14. IDEA打包jar包(打包可运行jar,外部引用jar包版)
  15. win8 网络 计算机,win8系统下,如何使电脑成为无线路由器?
  16. XAMPP中启动tomcat报错的解决方法
  17. 解决办法:error: unknown type name ‘__int64‘
  18. 2021-09-07客户端向 NameNode 请求创建文件,NameNode 根据元数据信息计算出文件的元数 据信息
  19. 视觉SLAM十四讲学习笔记-第五讲-图像和实践
  20. URL rewrite

热门文章

  1. hello 驱动编写-最简单的驱动程序
  2. Tomcat传url地址中的特殊字符无法识别问题
  3. 【爬虫】爬取个人随手记账户
  4. JavaScript实现猜数字游戏(猜一位和四位数字)
  5. 玩转iOS开发:iOS 10 新特性《Siri Kit》
  6. 惊!西游记内幕竟是这样的。
  7. 读《七人分粥》悟管理之道
  8. 前端图片上传那些事儿
  9. 2021online普及组【吃豆人】O(4N)
  10. C# 重置IE安全等级