記-python socket服務器端四部曲


1、創建socket對象

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #創建一個TCPsocket對象\

2、設置socket選項

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSERADDR, 1)

3、綁定socket

s.bind(host,port)

"""

s.bind('',80):

  這條指令請求80端口,它是標准的HTTP(Web)端口。然而,操作系統通常約定限制小於1024的端口號,這樣一來只有root用戶可以綁定它們。

bind()函數中的第一個參數是很急要綁定的IP地址,它通常為空,意思是可以綁定到所有的接口和地址。

  有些機器會有多個網絡接口,例如,一個防火牆或許會有一個以太網卡連接公共的Internet,外加另外的一個以太網卡連接內部網絡,這種情況下,你或許希望

你的服務只對一個接口可用,所以你需要提供內部網絡的IP地址來綁定。在這種情況下,對於通過外部接口連接的客戶端來說,它看上去根本沒有80端口。

事實上,你可以運行另外一台單獨的服務器,讓他綁定一台外部服務器的80端口。

  事實上,可以通過調用bind()函數來吧客戶端socket綁定到一個特定的IP地址和端口號。然而,客戶端的這種能力很少被使用,因為操作系統會自動提供合適的值

"""

4、偵聽連接:

s.listen(5)

"""

  在實際接收客戶連接之前的最后一步就是調用listen()函數。這個調用通知操作系統准備接收連接。它只有一個參數,這個參數指明了在服務器實際處理連接的時候,

允許有多少個未決(等待)的連接在隊列中等待。作為一個約定,很多人設置為5(很多操作系統根本不支持大於5的)。對於先到很多縣城或者多任務服務器來說,這個參數的意義不是很大,但也是 必須的。

"""


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM