zoukankan      html  css  js  c++  java
  • python之网络编程

    网络编程基础知识
    • 客户端/服务器架构
      硬件服务器
        1、文件服务器:拥有庞大通用存储容量的计算机,可以被客户端远程访问。客户端计算机会挂载服务器计算机上的磁盘,看起来就像这个磁盘是在本地计算机上一样。
         网络文件系统(NFS):最流行的支持文件服务器的网络操作系统,sun公司开发的
         专用外围设备:磁盘驱动器
        2、打印服务器:处理客户端传入的打印作业然后发送给系统中的打印设备
         专用外围设备:打印机
      软件服务器
        web服务器
         上面安装提供给用户的web页面和web应用程序,然后启动web服务器 =》实现了一个c/s架构
        数据库服务器
        窗体(window)服务器
       思路:服务器无限循环等待客户端的请求,客户端如果有需求就可以向服务器发送请求
       网路编程就是遵循客户端/服务器架构的软件模型

    • 客户端/服务器网络编程大致流程
      服务器端:创建一个通信端点 ---》 无限循环监听服务器 ---》 等待客户端的请求并响应请求
      客户端:创建一个通信端点 ---》与服务器建立一个连接 ---》发送请求
      当请求被服务器处理,且客户端收到结果或某种确认信息,通信终止

    • 套接字(socket):通信端点
      1、它是什么?
       计算机网络数据结构
       在任何类型的通信开始之前,网络应用程序必须创建套接字
      2、创建套接字

    socket(socket_family, socket_type, protocol=0)
    socket_family是AF_UNIX或AF_INET
    socket_type是SOCK_STREAM或SOCK_DGRAM
    protocol通常省略,默认为0
    创建Tcp/IP套接字
    tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    创建UDP/IP套接字
    udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    套接字对象(内置)方法
    服务器套接字方法
    s.bind():将地址(主机名、端口号对)绑定到套接字上
    s.listen():设置并启动TCP监听器
    s.accept():被动接受TCP客户端连接,一直等待直到连接到达(阻塞)
    客户端套接字方法
    s.connect():主动发起TCP服务器连接
    s.connect_ex():connect()的扩展版本,此时会以错误码的形式返回问题,而不是抛出一个异常
    普通的套接字方法
    s.recv():接受TCP消息
    s.recv_into():接受TCP消息到指定的缓冲区(python2.5中新增)
    s.send():发送TCP消息
    s.sendall():完整的发送TCP消息
    s.recvfrom():接受UDP消息
    s.recvfrom_info():接收UDP消息到指定的缓冲区
    s.sendto():发送UDP消息
    s.getpeername():连接到套接字(TCP)的远程地址
    python的socket模块具体API查看官方文档:https://docs.python.org/3/library/index.html#library-index

  • 相关阅读:
    Scala--基础
    maven
    Storm 运行例子
    Storm 安装部署
    Storm
    Kafka 集群部署
    Redis Twemproxy
    Redis Sentinel
    获取URL中参数的值
    浏览器滚动条样式
  • 原文地址:https://www.cnblogs.com/myfaith-feng/p/12741224.html
Copyright © 2011-2022 走看看