文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

通过Python脚本理解系统线程

2023-01-31 07:44

关注
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()

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯