网络通讯
Posted xiamenghan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络通讯相关的知识,希望对你有一定的参考价值。
首先应用软件的构架:1、C/S(client === server) 2、B/S(browser ===server)。在不同的计算机上 一个安装客户端 另一个安装服务端 通过网络来通讯
那什么是网络通讯呢?1、要完成通讯必须具备的条件:物理连接介质(网线,wifi,光纤),2、必须遵循相同的标准。
在计算机网络中同样需要具备以上两个条件,作为应用软件开发者,不需要关心第一步 重点是通讯的标准(通讯的协议)
网络协议:
open system interconnection
OSI七层模型
应用(表示和会话都属于应用层,应用层没有固定的协议 需要双方程序员商量) 表示 会话 传输(TCP/UDP port端口号 用于唯一标识一个应用程序) 网络(ip协议 找到一个唯一的局域网 再找到局域网的一台计算机) 数据链路层(以太网协议 发送二级制的格式 mac标识唯一一台计算机) 物理 (发送二进制)
我们需要关注的是传输层的协议 ,但是像TCP这种协议原理还是很复杂的,为了简化这些复杂操作,在传输层之上封装了socket抽象层,就可以在完成网络通讯时直接使用socket封装好的功能
所以说学习网络编程 其实就是在学socket socket是什么???
socket翻译过来称为套接字 是对底层的 TCP、 IP、 UDP等网络协议进行封装 使得上层的应用程序开发者,不用直接接触这些复杂的协议(其实就是一个封装好的模块)
TCP和UDP是传输层最常见的协议
TCP主要传输方式是三次握手,四次挥手
优点:通过三次握手来与服务器建立连接,可以保证数据的完整性
缺点:传输效率低
使用的场景是文字聊天、支付宝转账等等
UDP主要传输方式就是不需要建立连接,直接发送
缺点:不能保证数据的完整性
优点:传输效率比TCP高
使用场景是视频通话,语音通话
在python中使用socket需要关心的是ip地址,port端口,传输协议TCP/UDP,你要发送的数据data,在编写网络编程时,一定有两台代码代表着服务器和客户端
以上是关于网络通讯的主要内容,如果未能解决你的问题,请参考以下文章