一.關於通訊端的介紹
1.通訊端的大概介紹
<1>網路化的應用程式在開始任何通訊之前都必須要建立通訊端,沒有它就完全沒辦法通訊。
<2>一開始,通訊端被設計用在同一台主機上多個應用程式之間的通訊,這也叫進程間通訊,或IPC。
<3>通訊端有兩種,分別是基於檔案型的和基於網路型的。
<4>AF_UNIX表示”地址家族:UNIX” –>基於檔案的。
AF_INET表示”地址家族:Internet”–>基於網路的。
<5>python只支援AF_INET、AF_UNIX、AF_NETLINK家族。
2.通訊端地址:主機和連接埠
通訊端是通訊的最底層結構。一個Internet地址由網路通訊所必需的主機和連接埠組成。
3.連線導向與無串連
無論使用哪一種地址家族,通訊端的類型只有兩種:連線導向的通訊端和不需連線的通訊端
<1>連線導向的通訊端
i.在通訊前一定要建立一條串連,連線導向的通訊方式提供了順序的,可靠的,不會重複的資料轉送。
ii.實現這種串連的主要協議是TCP(傳輸控制通訊協定),要建立TCP通訊端就得在建立的時候指定通訊端的類型為SOCK_STREAM。
<2>不需連線的通訊端
i.無需串連就可以進行通訊,資料到達的順序,可靠性及資料不重複性就無法保證了。
ii.實現這種串連的主要協議是UDP(使用者資料包通訊協定),要建立UDP通訊端就得在建立的時候指定通訊端類型為SOCK_DGRAM。
二.python中的網路編程
主要使用socket模組,模組中的socket()函數被用來建立通訊端。通訊端會提供一系列函數來支援基於通訊端的網路通訊。
1.socket()模組函數
使用socket.socket()函數來建立通訊端,文法:
sockete(socket_family,socket_type,protocol=0)
講解:
socket_family可以是AF_UNIX或AF_INET;socket_type可以是SOCK_STREAM或SOCK_DGRAM;protocol一般不填,預設值是0.
<1>建立一個TCP/IP的通訊端
tcpSock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
<2>建立一個UDP/IP的通訊端
udpSock=sock.socket(socket.AF_INET,socket.SOCK_DGRAM)
2.通訊端對象方法
圖片中介紹了通訊端s的主要方法: