黑马程序员——JavaSE之网络编程总结一

                                         ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------


网络模型

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

  TCP/IP参考模型

网络通讯要素

  IP地址

  端口号

  传输协议



OSI七层协议的作用简单描述成以下形式: 

        应用层      与用户应用进程的接口

        表示层      数据格式的转换

        会话层      会话管理与数据传输的同步

        传输层      端到端经网络透明地传送报文

        网络层      分组传送,路由选择

        数据链路层  在链路上无差错地传送帧

        物理层      经物理媒体透明传送比特流


网络通讯要素

   IP地址:InetAddress

         不易记忆,可用主机名

          本地回环地址:127.0.0.1  主机名:localhost

         在日常应用中的计算机地址是用"192.168.0.1","www.it315.org"等字符串格式来表示的。

   端口号:用于标识进程的逻辑地址,不同进程的标识

         有效端口:0~65535,其中0~1024是系统使用或者保留端口。

   传输协议:通讯的规则

          常见协议:TCP,UDP

<span style="font-family:Microsoft YaHei;">public static void main(String[] args) throws UnknownHostException{
		//ip地址对象:InetAddress
		//获取本地主机地址对象
	//	InetAddress ip = InetAddress.getLocalHost();
		//获取其他主机的地址对象
		InetAddress ip = InetAddress.getByName("198.168.0.1");
		
		System.out.println(ip.getHostAddress() + ":" + ip.getHostName());
	}</span>

域名:网站的网址

域名解析:将域名转换成服务器的IP地址的过程。

 

域名解析图:


端口:其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。 
不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口

网络中常用的端口号:

         服务                                 端口号

   Mysql 数据库服务          3306 

       SMTP                                   25

       HTTP                                   80

     SQL server                          1433

       Oracle                               1521

       DNS                                     53

 

TCP协议和UDP协议:

TCP协议:传输控制协议 

UDP协议:用户数据报协议


TCP将数据分成数据报,用能够到达目的地的路径信息连行包装,接收端则将这些数据进行重组。它提供可靠的、面向连接的数据报传递服务。 

    TCP协议位于IP协议的上层,为数据提供错误校验流量控制序列信息用以补充IP协议的不足

     UDP是无连接的服务,优点是灵活方便和比较迅速,但不能防止报文的丢失、重复或失序,特别适合于传送少量零星的报文。比如DNS就是基于UDP。

 

TCP与UDP的区别:

   TCP 提供面向连接的、可靠的数据流传输,而 UDP 提供的是非面向连接的、不可靠的数据流传输。

 TCP 传输单位称为报文段, UDP 传输单位称为用户数据报。

 TCP 注重数据安全性, UDP 数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般。

 

 

TCP客户端程序与TCP服务器端程序的交互过程:

(1)服务器程序创建一个ServerSocket,然后调用accept方法等待客户来连接。

(2)客户端程序创建一个Socket并请求与服务器建立连接。

(3)服务器接收客户的连接请求,并创建一个新的Socket与该客户建立专线连接。

(4)建立了连接的两个Socket在一个单独的线程(由服务器程序创建)上对话。

(5)服务器开始等待新的连接请求,当新的连接请求到达时,重复步骤(2)到步骤(5)发的过程。

 

 

Socket

  Socket:就是为网络服务提供的一种机制。通信的两端都有Socket。

  网络通信其实就是Socket间的通信。数据在两个Socket间通过IO传输。

 

服务器端接收到客户端Scoket的连接请求时会通过accept()方法返回一个与客户端Socket建立专线连接的服务器端的Socket对象,不能使用Socket构造方法创服务器端的Socket对象。当服务器端的Socket对象与客户端Socket对象建立专线连接后,它们以网络字节流的形式进行数据交换,Socket的getInputStream与getOutputStream分别用于返回Socket的输入流对象和输出流对象。

 

下面一个图解很容易明白:


URL

  URL代表一个统一资源定位符,它是指向互联网“资源”的指针。其中统一资源代表所有资源。能直接定位到网络的某一个资源上。

 

其中URL类有一个方法是getConnection()表示打开URL资源的连接,这时就可以方便的取资源。内部封装了Socket。getConnection抽象类代表应用程序和URL之间的通信连接。

这个类的实例可以用在读取和写入此URL引用的资源。


其中这些都要基于协议才能顺利的传输完成。比如我们平时用的最多的HTTP协议,它是

用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由URL指定的IP地址。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。

 

HTTP协议分为HTTP1.1和HTTP1.0,其中的主要区别如下:

1.HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,;
2.HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)。

在持久连接下,不必为每个Web对象的传送建立一个新的连接,一个连接中可以传输多个对象!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值