歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

通過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與元組進行綁定

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()#這句永遠不會被執行!

Copyright © Linux教程網 All Rights Reserved