通过Python脚本理解系统线程

from socket import * HOST='localhost'#定义主机

ADDR=(HOST,PORT) #定义元组

tcpSerSock.listen(1) #监听用户请求

def client(tcpCliSock,num): #定义函数。由于thread强行要求调用的函数必须有两个参数。num只是充数,没有特别含义

   CliSock=tcpCliSock #将传递进来的客户端socket赋值给CliSock

   while True: #定义无限循环

       data=CliSock.recv(BUFSIZ) #从用户socket中读取1024大小数据

       if not data: ##处理用户请求

   print 'con from :',addr <span style="color: rgb(44, 44, 44); font-family: 宋体,; background-color: rgb(255, 255, 255);" "="" 28px;="" 14px;="" serif;="" arial,="" narrow',="" arial="">#打印客户端信息

   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

时间: 2024-12-30 09:13:36

通过Python脚本理解系统线程的相关文章

通过Python脚本理解系统进程间通信

from socket import *  #导入socket包中的所有内容 from time import ctime #导入time包,同时在本地可使用ctime进行调用 import os,sys #导入os,sys包 HOST='localhost'#定义主机 PORT=21567#定义端口 BUFSIZ=1024 #定义缓冲区 ADDR=(HOST,PORT) #定义元组 tcpSerSock=socket(AF_INET,SOCK_STREAM)  #生成socket tcpSer

通过Python脚本理解系统进程

from socket import * from time import ctime import os,sys #sys定义了进程退出的方法 HOST='localhost'#定义主机 PORT=21567#定义端口号 BUFSIZ=1024#定义缓冲区 ADDR=(HOST,PORT)#定义元组 tcpSerSock=socket(AF_INET,SOCK_STREAM)#生成TCP Socket tcpSerSock.bind(ADDR) #将该Socket与元组进行绑定 tcpSerS

Python脚本实现12306火车票查询系统_python

最近我看到看到使用python实现火车票查询,我自己也实现了,感觉收获蛮多的,下面我就把每一步骤都详细给分享出来.(注意使用的是python3) 首先我将最终结果给展示出来: 在cmd命令行执行:python tickets.py -dk shanghai chengdu 20161007 > result.txt 意思是:查询 上海--成都 2016.10.07 的D和K开头的列车信息,并保存到 result.txt文件中:下面就是result.txt文件中的结果: 下面的将是实现步骤: 1.

分析用Python脚本关闭文件操作的机制

  这篇文章主要介绍了分析用Python脚本关闭文件操作的机制,作者分Python2.x版本和3.x版本两种情况进行了阐述,需要的朋友可以参考下 如果不用"with",那么Python会在何时关闭文件呢?答案是:视情况而定. Python程序员最初学到的东西里有一点就是可以通过迭代法很容易地遍历一个打开文件的全文: ? 1 2 3 f = open('/etc/passwd') for line in f: print(line) 注意上面的代码具有可行性,因为我们的文件对象"

Linux集群和自动化维2.6 生产环境下的Shell和Python脚本分类

2.6 生产环境下的Shell和Python脚本分类 生产环境下的Shell和Python脚本的作用还是挺多的,这里根据2.1节所介绍的日常工作中Shell脚本的作用,将生产环境下的Shell脚本分为备份类.监控类.统计类.运维开发类和自动化运维类.前面3类从字面意义上看比较容易理解,后面的两类需要稍微解释一下,运维开发类脚本是利用Shell或Python实现一些非系统类的管理工作,比如SVN的发布程序等:而自动化运维类脚本则是利用Shell或Python来自动替我们做一些烦琐的工作,比如自动生

使用Python脚本在Linux下实现部分Bash Shell的教程_python

对于Linux用户来说,命令行的名声相当的高.不像其他操作系统,命令行是一个可怕的命题,但是对于Linux社区中那些经验丰富的大牛,命令行却是最值得推荐鼓励使用的.通常,命令行对比图形用户界面,更能提供更优雅和更高效的解决方案. 命令行伴随着Linux社区的成长,UNIX shells,例如 bash和zsh,已经成长为一个强大的工具,也是UNIX shell的重要组成部分.使用bash和其他类似的shells,可以得到一些很有用的功能,例如,管道,文件名通配符和从文件中读取命令,也就是脚本.

《UNIX/Linux 系统管理技术手册(第四版)》——2.5 Python脚本编程

2.5 Python脚本编程 UNIX/Linux 系统管理技术手册(第四版) 随着项目变得越来越大.越来越复杂,面向对象的设计和实现所带来的好处,也就变得越来越清楚.Perl错过了大概5年时间,没有提供OO特性,虽然它后来又拼命去追赶,但Perl版的面向对象编程仍然显得有点儿牵强. 本节介绍Python 2.Python 3尚在开发之中,可能在本书没过时之前就能发布.但是和Perl 6不一样的是,它看上去更像是一种增量更新. 有着很强OO背景的工程师通常会喜欢Python和Ruby,这两种脚本

使用Python获取Linux系统的各种信息_python

在本文中,我们将会探索使用Python编程语言工具来检索Linux系统各种信息.走你. 哪个Python版本? 当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 (3.3)上是不工作的,以及提供一份解释不同之处的备选代码.请确保你已经安装了CPython,在终端上输入python或者python3回车,然后你在终端上应该能看到python的提示符(prompt). 请注意,所有的程序在它们第一行都是#!/usr/bin/env/

在Linux中通过Python脚本访问mdb数据库的方法

  这篇文章主要介绍了在Linux中通过Python脚本访问mdb数据库的方法,本文示例基于debian系的Linux系统,需要的朋友可以参考下 在 linux 系统中连接 mdb 数据库,直接连接的话,mdb 默认的驱动无法识别非 windows 的路径, 所以不能使用常规的连接方式 ? 1 DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:dirfile.mdb 安装 这里我们需要借助一些库来实现第三方的驱动 我们需要安装这些包:mdbtools,