网络通讯

首先应用软件的构架:1、C/S(client === server)  2、B/S(browser ===server)。在不同的计算机上 一个安装客户端 另一个安装服务端 通过网络来通讯

那什么是网络通讯呢?1、要完成通讯必须具备的条件:物理连接介质(网线,wifi,光纤),2、必须遵循相同的标准。

在计算机网络中同样需要具备以上两个条件,作为应用软件开发者,不需要关心第一步 重点是通讯的标准(通讯的协议)

网络协议:

  open system interconnection

  OSI七层模型

应用(表示和会话都属于应用层,应用层没有固定的协议 需要双方程序员商量)
表示
会话
传输(TCP/UDP port端口号 用于唯一标识一个应用程序)
网络(ip协议 找到一个唯一的局域网 再找到局域网的一台计算机)
数据链路层(以太网协议 发送二级制的格式 mac标识唯一一台计算机)
物理 (发送二进制)
osi 七层协议

我们需要关注的是传输层的协议 ,但是像TCP这种协议原理还是很复杂的,为了简化这些复杂操作,在传输层之上封装了socket抽象层,就可以在完成网络通讯时直接使用socket封装好的功能

所以说学习网络编程 其实就是在学socket      socket是什么???
   socket翻译过来称为套接字 是对底层的 TCP、 IP、 UDP等网络协议进行封装 使得上层的应用程序开发者,不用直接接触这些复杂的协议(其实就是一个封装好的模块)

 

TCP和UDP是传输层最常见的协议

TCP主要传输方式是三次握手,四次挥手

  优点:通过三次握手来与服务器建立连接,可以保证数据的完整性

  缺点:传输效率低

  使用的场景是文字聊天、支付宝转账等等

UDP主要传输方式就是不需要建立连接,直接发送

  缺点:不能保证数据的完整性

  优点:传输效率比TCP高

  使用场景是视频通话,语音通话

在python中使用socket需要关心的是ip地址,port端口,传输协议TCP/UDP,你要发送的数据data,在编写网络编程时,一定有两台代码代表着服务器和客户端

 

原文地址:https://www.cnblogs.com/xiamenghan/p/9917829.html