python網路編程基礎

來源:互聯網
上載者:User

標籤:

  Socket(通訊端)始於Unix,即人們所說的BSD Unix。socket家族有兩種:基於檔案系統的和基於網路的。第一種是基於檔案系統的,地址家族表示為:AF_UNIX(或AF_LOCAL);第二種是網路Socket,是基於網路的,地址家族表示為AF_INET(AF_INET6表示ipv6)。在Python 2.5 中加入了一種 Linux 通訊端的支援:AF_NETLINK(無串連[見下])通訊端家族讓使用者代碼與核心代碼之間的 IPC 可以使用標準 BSD 通訊端介面。Python 只支援 AF_UNIX,AF_NETLINK,和 AF_INET 家族。這裡將介紹使用最廣泛的一個:AF_INET。

  根據通訊端類型,可以分為連線導向的和不需連線的。

  連線導向的,在通訊之前需建立一條串連,這種通訊方式提供了順序的,可靠的,不會重複的資料轉送,而且也不會被加上資料邊界。實現這種串連的主要協議就是傳輸控制通訊協定(即 TCP),其對應的通訊端類型為 SOCK_STREAM。通訊端使用 網際網路通訊協定 (IP)(IP)來尋找網路中的主機,即TCP/IP協議來支援連線導向通訊端。

  不需連線的,無需建立串連就可以進行通訊。實現這種串連的主要協議就是使用者資料包通訊協定(即 UDP) ,指定通訊端類型為 SOCK_DGRAM。通訊端使用 網際網路通訊協定 (IP)來尋找網路中的主機,即UDP/IP協議來支援無串連通訊端。

 

  1. socket()模組函數

  建立socket()通訊端的文法如下:

  socket(socket_family, socket_type, protocol=0)

  socket_family一般為AF_UNIX或者AF_INET,socket_type可以是SOCK_STREAM或者SOCK_DGRAM,protocol一般不填,預設為0。

  由於socket模組中有太多的屬性,這裡使用"from socket import *"以減少代碼長度。

  建立一個TCP/IP的通訊端:

  tcpsocket = socket(AF_INET, SOCK_STREAM)

  同樣的,建立一個UDP/IP的通訊端:

  udpsocket = socket(AF_INET, SOCK_STREAM)

  

  2. 通訊端對象(內建)方法

  python中常用的通訊端對象函數如下:

 

  3. 基於TCP的C/S模型

 

python網路編程基礎

相關文章

聯繫我們

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