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

2014-11-24 09:10:22 · 作者: · 浏览: 0

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与元组进行绑定


tcpSerSock.listen(5) #监听请求


while True: #定义无限循环(越来越像shell)


print "waiting ...."


try: # 在生成进程中有销毁tcpSerSock的字句,如果不捕获这个异常将会导致程序错误!


tcpCliSock,addr=tcpSerSock.accept()


except: #捕获所有异常


sys.exit(0) #只要捕获到阻塞失败将退出当前进程。(只有生成的进程才会导致阻塞失败,在生成进程中才有销毁tcpSerSock的字句)


if os.fork(): #如果在主进程中的操作


pass


else: #如果在派生进程中的操作


print 'con from :',addr


while True:


data=tcpCliSock.recv(BUFSIZ)


if not data:


tcpSerSock.close() #销毁tcpSerSock


break #跳出循环!


tcpCliSock.send('[%s] %s' %(ctime(),data))


tcpSerSock.close()#这句永远不会被执行!