zoukankan      html  css  js  c++  java
  • 网络编程常用模块及方法

    Socket模块

    • 什么是socket

      socket是一个模块,可以写一套C/S架构的套接字

    • 为什么要用socket

      socket套接字会把底层各层协议工作封装好,可以节省开发成本

    • Python中的使用

      内置模块 import socket

    注意:

    客户端与服务端必须遵循:一端发,一端收

    半连接池:

    socketobj.listen(3) 3表示可以等待3个客户端的接入,加上正在服务对象,一共可以支持4个服务

    subprocess模块

    可以通过代码来执行操作系统终端的命令

    返回终端执行命令后的结果

    struct模块

    引发粘包问题

    1.由于网络传输过程中,无法预测对方需要接收的数据长度大小导致前后两次发送数据粘在一起

    2.多次连续发送数据量小,并且时间间隔短的数据一次性打包发送

    解决粘包问题

    1.先将源文件打包为报头,以4字节为标准位传输给客户端,使用struct.pack的方式将文件打包为报文

    2.发送报头,

    3.发送真实数据

    常用方法:

    struct.pack('i',len(文件)) 返回字符串,按照给定格式i把数据转换成字符串(字节流),并返回该字符串

    struct.unpack('i',接收到的字符串) 返回元组,按照给定格式'i'把数据流解析,返回解析结果

    struct_server模块

    可简化TCP与UDP服务端代码

    必须要创建一个类

    必须重写一个handle方法,覆盖原有的handle方法,当客户端链接时,会调用该方法

    socketserver.TCPServer只能同时服务一个客户端

  • 相关阅读:
    前端数据可视化插件(二)图谱
    前端数据可视化插件(一)图表
    CSS性能优化
    HTML性能优化
    github前端资源
    javascript生成n至m的随机整数
    原生js获取元素样式
    模式二之框架模式
    kendo-ui的使用和开发自己的组件
    pycharm安装报错Non-zero exit co?
  • 原文地址:https://www.cnblogs.com/agsol/p/11699574.html
Copyright © 2011-2022 走看看