通過Python腳本理解系統進程

 標籤:localhost 緩衝區 import 主機

原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://president.blog.51cto.com/4990508/1078402
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()#這句永遠不會被執行!

本文出自 “林肯” 博客,請務必保留此出處http://president.blog.51cto.com/4990508/1078402

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章