zoukankan      html  css  js  c++  java
  • 网络编程--多线程 , socketserver

    内容补充

    python2与python3的区别?

    """
    python3对unicode字符的原生支持
    Python2中使用ASCII码作为默认编码方式导致string有两种类型str和Unicode , Python3只支持Unicode的string
    """
    """
    py2:
        unicode            v = u"root"     本质上用Unicode存储
        (str/bytes)       v = "root"        本质上用字节存储
    
    py3:
        str                   v = "root"         本质上用unicode存储
        bytes              v = "root"         本质上用字节存储
    """

    函数作用域

    Python的作用域是通过函数划分的,作用域是在编写完成代码就已经生成.

    Python中程序的变量不是在哪个位置都可以访问的,访问权限决定这个变量在哪里赋值的.变量的作用域决定了在那一部分程序可以访问哪个特定的变量名称.

    Python的作用域一共有4种:

      L (Local)  局部作用域

      E (Enclosing)  必包函数外的函数中

      G (Global)      全局作用域

      B (Built-in)      内建作用域

    按照L->E->G->B的规则查找

    列表表达式

      列表表达式是Python内置的一种强大的生成list的表达式

      格式:  v = [lambda x:x+i for i in range(10)]

    网络

    路由器或交换机中的DHCP服务自动分配IP地址:(DHCP;自动为局域网内的电脑分配IP)

    IP:用4个"."分开的十进制表示  例:192.168.13.11

    IP:192.168.13.86

      IPV4

        00000000.00000000.00000000.00000000

        0~255        0~255      0~255        0~255

      IPV6 (目前个人基本用不到)

        00000000.00000000.00000000.00000000.00000000.00000000

      子网掩码:255.255.255.0

        192.168.13.86

        255.255.255.0

      将挡住的IP位数作为网段

      为挡住的部分作为可变的值

    网关:路由器中连接交换机的接口  

      网关IP:192.168.13.1  (默认为1)

    网络组成了局域网/城域网/广域网

    DNS

    网络连接:

      -域名解析

        www.luffycity.com     ==>       47.95.64.113

        www.oldboyedu.com     ==>  101.200.195.98

      -连接

      sk = socket.socket()

      sk.connect(('47.95.64.113',80))

    看上面的代码,那么域名和IP的对应关系在哪里?

    本地:

      win本地电脑:  

      C:WindowsSystem32driversetchosts
      

    DNS服务器:全球顶级DNS服务器13台

    socketserver

    ThreadingTCPServer源码剖析:

      

    初识线程

    impor time
    impor threading
    
    def task(a1,a2,a3):
        time.sleep(2)
        print("拿快递")
    def play():
        print('陪女友玩耍')
    def Take-out food():
        print("去拿外卖")
    
    #创建一个线程
    #让该线程去执行任务:函数
    t1 = threading.Thread(target=task,args=(1,2,3))
    #去执行吧
    t1.start()
    
    #创建一个线程
    #让该线程去执行任务:函数
    t2 = threading.Thread(target=play))
    #去执行吧
    t2.start()
    
    #创建一个线程
    #让该线程去执行任务:函数
    t3 = threading.Thread(target=Take-out food))
    #去执行吧
    t3.start()
    
    print("玩扇子")
    print("煽风点火")
    print("耍贱...")

    socket与线程配合

    import time
    import socket
    import threading
    
    def task(conn):
        time.sleep(5)
        data = conn.recv(1024)
        print(data)
        conn.close()
    
    server = socket.socket()
    server.bind(('192.168.13.86',8000))
    server.listen(5)
    
    while True:
        conn,addr = server.accept()
        t = threading.Thread(target=task, args = (conn,))
        t.start()


  • 相关阅读:
    为什么cmd拖拽文件进去时有时候带引号,有时候不带?
    Android开发学习笔记:Spinner和AutoCompleteTextView浅析
    使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
    Android Fragment完全解析,关于碎片你所需知道的一切
    国外程序员推荐:每个程序员都应该读的非编程书
    百度地图添加覆盖物与给定两点路线规划
    Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
    Unable to execute dex: Multiple dex files define 解决方法
    Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
    poppupwindow android
  • 原文地址:https://www.cnblogs.com/wangjun187197/p/9600976.html
Copyright © 2011-2022 走看看