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

  • 相关阅读:
    ant 软件包不存在报错
    在 Internet Explorer 中使用 Windows 窗体控件
    智能客户端
    Back to the Future with Smart Clients
    "Automation 服务器不能创建对象" 的解决方案
    Top 10 Reasons for Developers to Create Smart Clients
    Updater Application Block for .NET
    Smart Client Application Model and the .NET Framework 1.1
    Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients
    智能客户端技术总结(二)
  • 原文地址:https://www.cnblogs.com/eastson/p/2824100.html
Copyright © 2011-2022 走看看