首页 > 编程语言 > 详细

Java 之 网络编程基础

时间:2019-09-17 22:41:27      阅读:75      评论:0      收藏:0      [点我收藏+]

一、软件结构

  C/S 结构:全称为 Client/Server 结构,是指客户端和服务器结构。常见的程序有微信,QQ,迅雷等软件。

  技术分享图片

 

  B/S 结构:全称 Brower/Server 结构,是指浏览器和服务器结构,常见的浏览器有谷歌,火狐,IE 等。

  技术分享图片

 

  以上两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。

二、网络通信协议

  网络通信协议

    通信协议是对计算机必须遵守的规则,只有遵守这些规则,计算机之间才能进行通信。这些协议好比交通规则一样。

    协议中对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守,最终完成数据交换。

  TCP/IP 协议

    传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol ),是 Internet 最基本、最广泛的协议。

    它定义了计算机如何连入因特网,以及数据如何在它们之间传输的标准,它的内部包含一系列的用于处理数据通信的协议,并采用了四层的分层模型,每一层都呼叫它的下一层所提供的协议来完成自己的需求。

  技术分享图片

 

三、协议分类

  通信的协议还是比较复杂的,java.net 包中包含的类和接口,它们提供层次的通信细节。可以直接使用这些类和接口,来专注于网络程序开发,而不用考虑通信的细节。

  java.net 包中提供了两种常见的网络协议的支持:

    TCP

      传输控制协议 (Transmission Control Protocol)

      TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。

      三次握手TCP协议中,在发送数据的准备阶段,客户端与服务器之间的三次交互,以保证连接的可靠

      •   第一次握手客户端向服务器端发出连接请求,等待服务器确认。
      •   第二次握手服务器端向客户端回送一个响应,通知客户端收到了连接请求
      •   第三次握手客户端再次向服务器端发送确认信息,确认连接。整个交互过程如下图所示

 

       技术分享图片

      完成三次握手,连接建立后,客户端和服务器就可以开始进行数据传输了。由于这种面向连接的特性,TCP协议可
以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。

    UDP

      用户数据报协议(User Datagram Protocol)UDP协议是一个面向无连接的协议。

      传输数据时,不需要建立连接,不管对方端服务是否启动,直接将数据、数据源和目的地都封装在数据包中,直接发送。每个数据包的大小限制在64k以内。它是不可靠协议,因为无连接,所以传输速度快,但是容易丢失数据。日常应用中,例如视频会议、QQ聊天等。

四、网络编程三要素

  1、协议

     协议:计算机网络通信必须遵守的规则。

  2、IP地址

     IP地址:指互联网协议地址(Internet Protocol Address ,俗称IP。

     IP地址用来给一个网络中的计算机设置做唯一的编号。

     IP 地址分类:

      •  IPv4:是一个32位的二进制数,通常被分为4个字节,表示成 a.b.c.d 的形式,例如 192.168.65.100 。其中abcd都是0~255之间的十进制整数,那么最多可以表示42亿个。
      •    IPv6:由于互联网的蓬勃发展,IP地址的需求量愈来愈大,但是网络地址资源有限,使得IP的分配越发紧张。有资料显示,全球IPv4地址在20112月分配完毕。

      为了扩大地址空间,拟通过IPv6重新定义地址空间,采用128位地址长度,每16个字节一组,分成8组十六进 制数,表示成 ABCD:EF01:2345:6789:ABCD:EF01:2345:6789 ,号称可以为全世界的每一粒沙子编上一个网
址,这样就解决了网络地址资源数量不够的问题。
     常用命令

      ① 查看本机 IP 地址,在控制台输入:

ipconfig

      ② 检查网络是否连通,在控制台输入:

ping 空格 IP地址
ing 220.181.57.216

     特殊的 IP 地址

      本机IP地址:127.0.0.1、localhost 。

  3、端口号

    网络的通信,本质上是两个进程(应用程序)的通信。每台计算机都有很多的进程,那么在网络通信时,如何区分这些进程呢

    如果说IP地址可以唯一标识网络中的设备,那么端口号就可以唯一标识设备中的进程(应用程序)了。

    端口号:用两个字节表示的整数,它的取值范围是 0~65535。其中,0-1023 之间的端口号用于一些知名的服务和应用。,普通的应用程序需要使用1024以上的端口号。如果端口号被另外一个服务或应用所占用,会
导致当前程序启动失败。

      利用 协议 + IP地址 + 端口号 三元组合,就可以标识网络中的进程了,那么进程间的通信就可以利用这个标识与其
它进程进行交互。

    
 

 

Java 之 网络编程基础

原文:https://www.cnblogs.com/niujifei/p/11537667.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!