惊了!!! 小白零基础学java (月薪过万是你的梦想嘛) 手把手教学 就怕你不动手【二十二】第二章【网络编程】

网络编程

1. 理解网络的相关概念

网络的概念

计算机网络:多个计算机之间通过专业的设备进行连接,形成一个网络。每一台计算都是一个网络节点,可以相互进行信息的传递等。

网络的分类

局域网

城域网

广域网

互联网

无线网

网络通信-IP

在网络中,每台计算机都需要遵守IP协议产生一个唯一的上网标识。

IP(Internet Protocol):

IPV4:由4个8位二进制组成。10001101.10001101.10001101.10001101

不方便记忆,转换为十进制表示,范围为:0 ~ 255。 192.168.3.124

IPV6:基本上可以满足全世界的地址需求

**查看本机的IP地址:**ipconfig

**测试网络联通:**ping 要连接的IP地址

域名:www.baidu.com www.jd.com

DNS (Domain Name System) 域名系统

它会在系统内准备一份域名和对应机器IP的映射表。

访问一个域名时:

1. 查找浏览器内是否有缓存映射
2. 查找本机的hosts文件
3. 前往网络服务商提供的域名系统

特殊的IP:127.0.0.1 == localhost 本机的回环地址 可以表示本机

网络通信-端口

每个程序运行时都会占用一个端口,它是唯一的。 端口范围:0-65535

我们如果想通过某个程序在网络内进行信息交流,必须要知道对方的IP和程序端口号。

IP:端口号

例如:127.0.0.1:8080

61.135.169.125:80(HTTP协议默认端口是80)

2. 使用Socket实现网络应用程序

应用程序的架构

B/S(Browser浏览器<客户端>/Server服务器)

基于浏览器为客户端的网络应用程序。

典型:网站、小程序…

优点:

1. 无需下载安装,只要有浏览器就可以访问。【可以留住很多用户】
2. 服务器更新,用户几乎无感知。刷新浏览器就可以得到最新的内容。
3. 因为只需要有浏览器,所以在平台层面的兼容性可以忽略了。

缺点:

  1. 因为所有的资源都在服务器上,所以在传输信息过程中受到带宽影响比较大。
  2. 在画面渲染和安全验证方面,受限严重。
  3. 因为资源请求是同步请求,所以用户体验很差。【由谷歌地图带起AJAX风之后,有所改善】

C/S(Client客户端/Server服务器)

基于自身定制的客户端的网络应用。

典型:QQ 微信 APP 端/手游

优点:

  1. 因为大多数普通资源都放在了客户端(胖客户端),所以在传输信息只需要加载一些重要信息即可,受到带宽影响较小。
  2. 在画面渲染和安全验证方面,比较强,实现也比较容易。
  3. 因为信息加载只需要加载必要信息,所以体验较好。

缺点:

1. 必须安装客户端才能使用。
2. 如果服务器更新,必须要重新下载客户端。(省流/补丁更新)
3. 不同的平台必须适配不同的版本。

Socket介绍

插座,通信链路点

传输协议

网络模型中传输层的协议。TCP UDP

TCP:传输控制协议

​ 三次握手 面向连接的传输协议 适用于传输重要的 对安全要求比较高的信息。 下载文件、聊天、传输资料

​ 为了维护连接可靠,效率较低

UDP:用户数据报协议

​ 面向无连接的传输协议 适用于传输一些不太重要的信息。 视频聊天、看视频

​ 效率较高

基于TCP

ServerSocket

Socket

基于UDP

DatagramPacket

DatagramSocket

猜你喜欢

转载自blog.csdn.net/dwwen/article/details/90017218