网络篇——网络编程

学习网址:http://c.biancheng.net/socket/
网络编程就是从服务器上下载数据,把客户端里面的数据上传到服务器。

1.B/S架构

B:browser浏览器
S:server服务器
在这里插入图片描述

2.URL是什么?

  • image.baidu.com——百度图片的服务器
    如何知道百度服务器就是这个东西呢?url必须通过域名解析服务器,解析成127.0.2.2类似的IP地址,域名服务器将域名解析成IP地址,根据解析成的IP地址找到对应的服务器,也就是你的主机。
    在这里插入图片描述

3.C/S架构

C:client客户端
S:server服务端
在这里插入图片描述

4.网络七层模型

  • 用来描述网络的一种模型
  • 物理层:如何和硬件打交道
  • 数据链路层:数据真正的传输
  • 网络层:如何构建网络
  • 传输层:如何把要传输的数据准备好
  • 应用层:使用http协议发起一个请求
    应用层->传输层->网络层->网络接口层
    在这里插入图片描述
    每经过一层,都经过一层包装,最后形成一个数据包
    在这里插入图片描述

5.socket套接字

  • 数据传递中重要的两个东西:IP地址+端口
  • 数据传递的过程:在客户端APP中,数据经过应用层简单的封装,再到传输层、网络层 、数据链路层、物理层,然后数据传到了服务端。服务端中,从物理层一层一层往上传,传到应用层解析到相应的数据。这两个数据传递的过程中,数据形成数据包,数据包又被解析成数据,这个功能就是socket套接字完成的,socket是应用层和传输层之间的桥梁。
    在这里插入图片描述
  • socket如何实现网络接口?在客户端会创建一个socket,在服务器端也会创建一个socket,在服务器端会绑定一个端口号(bind),一般网络传输的端口号是80端口,服务器绑定端口号之后等待用户端传输数据(监听:listen),一旦用户端有访问数据的请求,服务器就接收(accept)。如果accept了,但是没有数据来,就会阻塞,直到有数据来。这时客户端发起一个网络请求(request),创建一个socket,然后socket就会连接一个地址,就是服务器,然后服务器端就接收到了发送数据的请求,接下来客户端就要向服务器端传数据(客户端write/send,服务器端read/receive),客户端也要从服务器端拿数据(客户端read/receive,服务器端write/send)
    在这里插入图片描述
  • socket实际上是文件,使用完毕之后关闭(close)。
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页