1.套接字:通訊端點python
服務器響應客戶端請求以前,必須進行一些初步的設置流程來爲以後的工做作準備。首先回建立一個通訊端點,它可以使服務器監聽請求。編程
python只支持AF_UNIX, AF_NETLINK, AF_TIPC和 AF_INTE,咱們討論網絡編程將使用AF_INET服務器
一個網絡地址由主機名和端口號組成,而這是網絡編程通訊所須要的。有效的端口號範圍爲0~65536.網絡
面向鏈接的通訊提供序列化的,可靠的和不重複的數據交付,而沒有記錄邊界。這種鏈接類型的主要協議是傳輸控制協議(TCP)。爲了建立TCP套接字,必須使用SOCK_STREAM做爲套接字類型。還有一種無鏈接的套接字。這意味着,通訊開始以前並不須要創建鏈接。此時,在數據傳輸過程當中並沒有法保證它的順序性,可靠性或重複性。實現這種鏈接類型的主要協議是用戶數據報協議(UDP)。爲了建立UDP套接字,必須使用SOCK_DGRAM做爲套接字類型。socket
2.建立TCP服務器函數
全部的套接字都是經過使用socket.socket()函數來建立的。由於服務器須要佔用一個端口並等待客戶端的請求,因此他們必須綁定到一個本地地址。TCP服務器必須監聽(傳入)的鏈接,一點這個安裝過程完成後,服務器就能夠開始它的無限循環。調用accept()函數以後,就開啓一個簡單的服務器,它會等待客戶端的鏈接。默認狀況下,accept()是阻塞的,這意味着執行將被暫停,知道一個鏈接到達,一點服務器接收一個鏈接,就會返回一個獨立的客戶端套接字,用來與即將到來的消息進行交換。spa
3.建立TCP客戶端blog
。。網絡編程