zoukankan      html  css  js  c++  java
  • 通过Python脚本理解系统线程

    from socket import * #导入socket包中的所有内容
    from time import ctime #导入time包,同时在本地可使用ctime进行调用
    import thread #导入Python线程包
     
    HOST='localhost'#定义主机
    PORT=21567#定义端口
    BUFSIZ=1024 #定义缓冲区
    ADDR=(HOST,PORT) #定义元组
     
    tcpSerSock=socket(AF_INET,SOCK_STREAM)  #生成socket
    tcpSerSock.bind(ADDR) #将地址及端口元组与socket绑定
    tcpSerSock.listen(1) #监听用户请求
     
    def client(tcpCliSock,num): #定义函数。由于thread强行要求调用的函数必须有两个参数。num只是充数,没有特别含义
        CliSock=tcpCliSock #将传递进来的客户端socket赋值给CliSock
        while True: #定义无限循环
            data=CliSock.recv(BUFSIZ) #从用户socket中读取1024大小数据
            if not data: #如果客户端没有任何输入,即直接回车或Ctrl+D
                break #跳出无限循环
            CliSock.send('[%s] %s' %(ctime(),data)) #返回用户输入并附加当前系统时间
        sys.exit #结束进程
     
    while True: #定义无限循环
        print "waiting ...." #打印等待用户输入时的waiting
        tcpCliSock,addr=tcpSerSock.accept() #处理用户请求
        print 'con from :',addr #打印客户端信息
        thread.start_new_thread(client,(tcpCliSock,1))    #在Python中使用线程就靠这句了!Python会开始一个新的线程来运行client函数并以元组的形式传递给这个函数参数!
     
    tcpSerSock.close() #这句依然不会执行!
    threading是官方推荐编写线程使用的模块。还是有必要了解thread的,不仅可以让我们更加了解系统线程的运行方式,也能找到thread与threading及Queue之间的区别,进而更好的学习掌握threading!
     
    下面是Python客户端程序。如果你可以使用telnet进行测试,那么以下内容可以忽略。
    from socket import *
     
    HOST='localhost'
    PORT=21567
    BUFSIZ=1024
    ADDR=(HOST,PORT)
     
    tcpCliSock=socket(AF_INET,SOCK_STREAM)
    tcpCliSock.connect(ADDR)
     
    while True:
        data=raw_input("> ")
        if not data:
            break
        tcpCliSock.send(data)
        data=tcpCliSock.recv(BUFSIZ)
        if not data:
            break
        print data
     
    tcpCliSock.close()

    原文地址:http://president.blog.51cto.com/4990508/1081542

  • 相关阅读:
    sass学习笔记1
    javascript 数组的深度复制
    div+css定位position详解
    滚动加载图片(懒加载)实现原理
    移动端布局经验
    js 扁平化输出数组
    axiso基本使用及python接收处理
    JSP内置对象
    JSP基本语法
    tomcat环境搭建
  • 原文地址:https://www.cnblogs.com/eastson/p/2824100.html
Copyright © 2011-2022 走看看