6.python中的網絡編程
阿新 • • 發佈:2017-10-12
unix 技術 內置 網絡編程 一個 protocol udp 針對 netlink
socket(socket_family, socket_type, protocol=0)
其中,socket_family 是 AF_UNIX 或 AF_INET(如前所述),socket_type 是 SOCK_STREAM
或 SOCK_DGRAM(也如前所述)。 protocol 通常省略,默認為 0。
所以,為了創建 TCP/IP 套接字,可以用下面的方式調用 socket.socket()。
tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
同樣,為了創建 UDP/IP 套接字,需要執行以下語句。
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
在python中支持多種地址家族
其中,常用的最早的伯克利套接字中是AF_UNIX,
Linux中的套接字是AF_NETLINK,
針對 Linux 的另一種特性(Python 2.6 中新增)就是支持透明的進程間通信(TIPC)協議。 TIPC 允許計算機集群之中的機器相互通信,而無須使用基於 IP 的尋址方式。 Python 對TIPC 的支持以 AF_TIPC 家族的方式呈現。
而最常用的基於網絡的編程是基於家族名字 AF_INET,或者地址家族:因特網。另一個地址家族 AF_INET6 用於第 6 版因特網協議(IPv6)尋址 。
1.創建套接字
要創建套接字,必須使用 socket.socket()函數,它一般的語法如下。
socket(socket_family, socket_type, protocol=0)
其中,socket_family 是 AF_UNIX 或 AF_INET(如前所述),socket_type 是 SOCK_STREAM
或 SOCK_DGRAM(也如前所述)。 protocol 通常省略,默認為 0。
所以,為了創建 TCP/IP 套接字,可以用下面的方式調用 socket.socket()。
tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
同樣,為了創建 UDP/IP 套接字,需要執行以下語句。
udpSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
tips:使用from socketimport *,就可以直接寫udpSock = socket(socket.AF_INET, socket.SOCK_DGRAM),不用每個函數名前都加上模塊名socket了。
套接字內置的方法
一般來說,簡單的標準流程為:
6.python中的網絡編程