• JAVA学习第五十九课 — 网络编程概述


    网络模型

    OSI(Open System Interconnection)开放系统互连:參考模型

    TCP/IP

    网络通讯要素

    IP地址

    port号

    传输协议

    网络參考模型




    七层OSI模型的基本概念要了解


    网际层协议:包含:IP协议、ICMP协议、ARP协议、RARP协议。
    传输层协议:TCP协议、UDP协议。
    应用层协议:FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。


    要真正实现网络通讯,首先要找到IP地址,IP地址是网络通讯的一大要素

    IP地址:InetAddress

    网络中设备标识

    不易记忆,可用本机名

    本地回环地址:127.0.0.1,这个地址,仅仅为訪问本机 

    IP地址是对外暴露的标识,能够通过获取IP地址。訪问


    为了进行应用程序的标识区分,就提供了一些数字来标识应用程序。比方QQ 用4000来标识,我的电脑QQ发消息,发送到IP 地址是: 192.168.0.1 的编号为4000的应用程序上。而这些数字就是(逻辑)port。

    机箱上的port:是物理port

    port号

    用于标识进程的逻辑地址,不同进程的标识

    有效port,0~65535,当中0~1024系统使用或保留port。

    也就是说尽量保证( 1024 < port编号 <= 65535

    而防火墙,就是利用port实现的,比方QQ的port号是4000,防火墙设置。port4000的数据,禁止发送,就使得QQ无法连接到网络


    IP对象

    IP地址比較复杂。在Java中也就被封装成了对象,java.net包中提供了网络传输涉及的对象

    类 InetAddress:此类表示互联网协议 (IP) 地址。

    InetAdress类下有Inet4Address。Inet6Address两大类。使IP地址。不易冲突

    存在于网际层,该层能识别IP地址,能封装IP地址

    InetAdress对象。无构造函数,说明肯定有方法返回对象,并且是静态方法

    简单演示

    	public static void Demo()throws UnknownHostException {
    		
    		//获取本地主机IP地址对象,要抛出未知主机异常
    		InetAddress ip = InetAddress.getLocalHost();
    		
    		//获取其它主机ip地址对象
    		//ip = InetAddress.getByName("kevy-PC");//也能够写IP地址
    		ip = InetAddress.getByName("www.baidu.com");//获取百度的IP地址
    		
    		System.out.println(ip.getHostAddress());//获取主机IP地址
    		System.out.println(ip.getHostName());//获取主机名,假设没有获取到,说明解析时。局域网找不到
    		
    		//还可能存在IP地址不唯一的可能,比方新浪、网易,server集群的情况
    		//得到的IP对象是数组
    		//InetAddress[] ipp = InetAddress.getAllByName("");
    	}

    域名解析


    正常在訪问主机时,比方訪问网易的主机。网易的主机。无非就是一台计算机存储一些数据。主机有一个IP地址,

    如果127.0.0.1,存储着网易的网络资源

    尽管在訪问站点的时候,是域名。但实际上是IP地址。http://127.0.0.1,早期就是IP地址,可是IP地址有可能相应相应多个主机

    所以就有了www(万维网).域名.com(属于商业化组织).cn(所属国家类别)

    IP地址和域名有着相应关系。在互联网有一些主机,存储的就是这些相应关系,这就是域名解析,而这些主机就是DNS(域名解析server)。仅仅有DNS才记录网易的IP地址,DNS把IP地址返回你的计算机,再走网易


    想提高解析速度。就能够实现本地解析。在本地创建一张域名解析列表,主机本身就自带了,仅仅需我们去配置就可以,

    C:WindowsSystem32driversetc

    域名解析时,先走的不是互联网,而是本机,本机失败再到互联网,解析

    所以。由此,就能够在浏览一些站点时。能够屏蔽一些站点的垃圾广告,将广告站点的域名记录,配置在本地

    127.0.0.1 XXXXX。这样就会先在本地用自己的IP解析,站点也就打不开,不走互联网。

    360屏蔽网址也是这个原理


    Socket(插座)

    学习传输协议,就要先了解Socket

    要进行网络传输就必须有两个端点,这两个端点想要通信,就必须连接,端点就能够理解为Socket

    Socket是为网络服务提供的一种机制

    通信的两端想要通讯必须有Socket

    网络通信事实上就是Socket间的通信

    数据在两个Socket间通过IO传输


    所以网络编程也能够叫Socket编程




  • 相关阅读:
    如何在Mac OS X上安装 Ruby运行环境
    CocoaPods安装和使用教程
    【Objective-C】07-自定义构造方法和description方法
    window cmd 命令大全 (order)
    vue methods 方法中 方法 调用 另一个方法。
    js ---- 函数防抖
    three.js 运行3D模型
    点击保存网页 (及页面的数据)
    js -- canvas img 封装
    js -- 分页功能
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5055419.html
Copyright © 2020-2023  润新知