• 网络编程



    网络编程:

    应用软件的构架
    1.C/S
    clien t==== server
    客户端======》网络=====》服务端
    2.B/S
    browser ==== server
    浏览器======》网络=====》服务端

    server端应该遵循的原则:
    1.无论是服务端还是客户端都应该有一个唯一的地址(ip+port),但是服务端ip+port必须固定/绑定
    2.一直对外提供服务,稳定运行
    3.服务端应该支持并发
    网络:底层的物理连接介质+互联网协议(就相当于计算机界的英语)

    在不同的计算机上 一个安装客户端 另一个安装服务端 通过网络来通讯

    什么是网络通讯?

    要完成通讯必须具备的条件:
    1.物理连接介质(网线,wifi,光纤)
    2.必须遵循相同的标准

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

    网络协议:
    open system interconnection
    OSI七层模型:应用层(表示层,会话层),传输层,网络层,数据链路层,物理层
    应用层:http,ftp
    传输层:TCP/UDP
    网络层:ip
    数据链路层:ethernet
    物理层:发送电信号

    传输层协议:TCP和UDP是传输层最常见的协议
    主要控制传输数据的方式

    TCP的传输方式:
    特点:通过三次握手来与服务器建立连接
    可以保证数据的完整性:
    a机器给b机器发送数据包 要求b机器必须立即返回一个确认包
    a机器会等待一段时间,如果超市还没有收到确认,则重发数据
    缺点:传输效率低
    使用场景:文字聊天,支付转账等

    三次握手:TCP建立连接时发生的
    第一次握手:客户端向服务端发送连接请求
    第二次握手:服务端向客户端发送同意连接请求以及是否能正常接收信
    息的测试信息
    第三次握手:客户端向服务端发送可以正常接收的确认信息

    四次挥手:TCP断开连接时发生的
    第一次挥手:客户端向服务端发送断开连接请求
    第二次挥手:服务端发送同意请求信息,但要求数据需传输完后才可以断开
    第三次挥手:服务端发送数据发送完毕信息
    第四次挥手:客户端确认数据接收完毕,断开连接

    UDP的传输方式:不需要建立连接 直接发送
    优点:传输效率比TCP高
    缺点:不能保证数据的完整性
    使用场景:视频通话,语音通话,游戏

    学习网络编程 其实就是在学习socket?
    socket是什么?
    翻译过来就是套接字
    是对底层的TCP IP UDP等网络协议进行封装
    使得上层的应用程序开发者,不用直接接触这些复杂的协议
    在程序员的言论中 他就是一个封装好的米快
    要完成网络通讯 只需要使用系统提供的socket模块就行

    python中的socket
    在使用socket的时候用户需要关心的是IP地址,port端口 传输协议TCP/UDP,你要发送的数据data
    在写网络编程的时候,必然是有两台代码 对应者客户端和服务端


  • 相关阅读:
    安装JavaJDK没有jre环境的解决办法 错误: C:Program FilesJavajdk-11.0.7jre
    Centos7 安装redis 5.0.8 开机自启动
    某科学的PID算法学习笔记
    数学建模题目和模型汇总(2000-2019 国赛本科组)
    我,不是说了PID要平均值吗?
    私人网盘很难搭建吗?实际上仅需两步!
    Appium+Python
    Appium+Python-模拟手机滑动操作(swipe)
    Appium+Python-模拟手机按键操作
    Appium+Python-元素定位(常用定位)
  • 原文地址:https://www.cnblogs.com/yanhui1995/p/9890341.html
Copyright © 2020-2023  润新知