通過Python指令碼理解系統進程

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.