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

來源:互聯網
上載者:User

from socket import * #匯入socket包中的所有內容from time import ctime #匯入time包,同時在本地可使用ctime進行調用import thread #匯入Python線程包
HOST='localhost'#定義主機PORT=21567#定義連接埠BUFSIZ=1024 #定義緩衝區ADDR=(HOST,PORT) #定義元組
tcpSerSock=socket(AF_INET,SOCK_STREAM)  #產生sockettcpSerSock.bind(ADDR) #將地址及連接埠元組與socket綁定tcpSerSock.listen(1) #監聽使用者請求
def client(tcpCliSock,num): #定義函數。由於thread強行要求調用的函數必須有兩個參數。num只是充數,沒有特別含義    CliSock=tcpCliSock #將傳遞進來的用戶端socket賦值給CliSock    while True: #定義無限迴圈        data=CliSock.recv(BUFSIZ) #從使用者socket中讀取1024大小資料        if not data: #如果用戶端沒有任何輸入,即直接斷行符號或Ctrl+D            break #跳出無限迴圈        CliSock.send('[%s] %s' %(ctime(),data)) #返回使用者輸入並附加當前系統時間    sys.exit #結束進程
while True: #定義無限迴圈    print "waiting ...." #列印等待使用者輸入時的waiting    tcpCliSock,addr=tcpSerSock.accept() #處理使用者請求    print 'con from :',addr #列印用戶端資訊    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=21567BUFSIZ=1024ADDR=(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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.