python網絡設計模塊

1.Socket模塊服務器

Socket模塊中的socket()方法用於建立套接字,套接字主要是兩個程序之間的信息通道,程序可能分佈在不一樣的計算機上,經過套接字相互發送信息socket

語法格式:socket(socket_family,socket_type,protocol = 0)3d

socket_family    該參數的值能夠爲AF_UNIX或AF_INET對象

socket_type   該參數的值能夠爲SOCK_STREAM或SOCK_DGRAMblog

protocol   該參數通常不賦值,默認值爲0接口

2)socket的工做方式進程

套接字包括兩個:服務器套接字和客戶機套接字。套接字在工做的時候,將鏈接對端分爲服務器端和客戶端,這也是C/S(Client/Server,客戶端/服務器端)模式的由來事務

服務器端套接字必須準備隨時處理客戶端的鏈接,同時還要處理多個鏈接,而客戶機只是簡單地鏈接,完成事務、斷開鏈接。字符串

Socket類的實例化須要3個參數:
·第一個參數是地址簇(默認是socket.AF_INET)服務器端

·第二個參數是流(默認值爲socket.SOCK_STREAM)或數據報(默認值爲socket.SOCK_DGRAM)套接字

·第三個參數是使用的協議(默認爲0,使用默認值便可)

不一樣的套接字類型有着不一樣的套接字地址。在AF_UNIX地址簇中使用一個簡單的字符串;在AF_INET地址簇中使用的是host和port地址對,其中host爲主機地址名、IP地址或者Internet上的URL,而port則是一個整數;在AF_INET6地址簇中用(host,port,flowinfo,scopeid)元組來表示,其中的host和port與AF_INET中相同。

客戶端應用程序在生成套接字對象後,能夠調用bind()方法來綁定本身的請求套接字接口地址,而後調用connect()方法來鏈接服務器端進程。當鏈接創建後,能夠使用send()和recv()方法來傳輸數據。最後須要使用close()方法將端口關閉。

服務器端套接字使用bind()方法綁定一個套接字接口地址,接着使用listen()方法監聽客戶端請求。當有客戶端請求時,將經過accept()方法來生成一個鏈接對象,而後經過此鏈接對象發送和接收數據。數據傳輸完畢,能夠調用close()方法將生成的鏈接關閉。

相關文章
相關標籤/搜索