傳輸控制協議(官方術語爲TCP/IP協議)是互聯網的重要組成部分。TCP的第一個版本是在1974年定義的,它創建在網際層協議(IP)提供的數據包傳輸技術之上。TCP使得應用程序可使用連續的數據流進行相互通訊,除非出現網絡緣由致使鏈接中斷等意外狀況,不然TCP都能保證數據流完整的傳輸給接收方,而不會發生丟包、重包或亂序的問題。python
傳輸文檔和文件的協議幾乎都是使用TCP的,這包括經過瀏覽器瀏覽網頁、文件傳輸以及用於電子郵件傳輸的全部主要機制。TCP協議是雙向通訊的,須要先創建鏈接而後才能互相通訊。其中涉及到一些通訊、網絡相關方面的知識,這裏不進行詳細解釋,若是不大瞭解,請自行去查看有關資料。瀏覽器
TCP服務器的創建能夠概括以下:(1).開啓套接字(socket);(2).綁定服務端口;(3).開始監聽;(4).等待客戶端鏈接;(5).和客戶端對話。TCP服務器源程序代碼以下所示:服務器
1 #!/usr/bin/env python 2 # coding=utf8 3 4 from socket import * 5 6 host = '' 7 port = 12345 8 bufsiz = 1024 9 10 tcpSerSock = socket(AF_INET, SOCK_STREAM) # 開啓套接字 11 tcpSerSock.bind((host, port)) # 綁定服務端口 12 tcpSerSock.listen(5) # 開始監聽 13 14 while True: 15 print 'Please waiting for connection...' # 等待客戶端鏈接 16 tcpCliSock, addr = tcpSerSock.accept() 17 print '...connected from:', addr 18 19 while True: 20 data = tcpCliSock.recv(bufsiz) # 接收客戶端信息 21 if not data: 22 break 23 tcpCliSock.send('[%s] %s' % ("You send:", data)) # 給客戶端發送信息 24 tcpCliSock.close() 25 26 tcpSerSock.close()
運行結果以下所示:網絡
Please waiting for connection...
TCP客戶端的建立可總結以下:(1).開啓套接字(socket);(2).鏈接服務器;(3).開始對話。TCP客戶端源程序代碼以下所示:socket
1 #!/usr/bin/env python 2 # coding=utf8 3 4 from socket import * 5 6 host = 'localhost' 7 port = 12345 8 bufsiz = 1024 9 10 tcpCliSock = socket(AF_INET, SOCK_STREAM) # 開啓套接字 11 tcpCliSock.connect((host, port)) # 鏈接到服務器 12 13 while True: 14 data = raw_input('> ') # 等待輸入 15 if not data: 16 break 17 tcpCliSock.send(data) # 發送信息 18 response = tcpCliSock.recv(bufsiz) # 接受返回信息 19 if not response: 20 break 21 print response 22 23 tcpCliSock.close()
執行客戶端源程序文件,可知:須要咱們輸入信息,才能顯示返回信息;而回過頭再看一下服務端的運行結果,顯示結果以下所示:tcp
Please waiting for connection... ...connected from: ('127.0.0.1', 52089)
注意:運行結果中的52089在不一樣狀況下的顯示是不同的。接着,咱們來驗證一下客戶端接收返回信息的功能,例如向客戶端源程序執行結果中輸入:Welcome to visit elijah7i's blog ! spa
運行結果以下所示:code
> Welcome to visit elijah7i's blog ! [You send:] Welcome to visit elijah7i's blog ! >