记-python socket服务器端四部曲
1、創(chuàng)建socket對(duì)象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #創(chuàng)建一個(gè)TCPsocket對(duì)象\
2、設(shè)置socket選項(xiàng)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSERADDR, 1)
3、綁定socket
s.bind(host,port)
"""
s.bind('',80):
這條指令請(qǐng)求80端口,它是標(biāo)準(zhǔn)的HTTP(Web)端口。然而,操作系統(tǒng)通常約定限制小于1024的端口號(hào),這樣一來只有root用戶可以綁定它們。
bind()函數(shù)中的第一個(gè)參數(shù)是很急要綁定的IP地址,它通常為空,意思是可以綁定到所有的接口和地址。
有些機(jī)器會(huì)有多個(gè)網(wǎng)絡(luò)接口,例如,一個(gè)防火墻或許會(huì)有一個(gè)以太網(wǎng)卡連接公共的Internet,外加另外的一個(gè)以太網(wǎng)卡連接內(nèi)部網(wǎng)絡(luò),這種情況下,你或許希望
你的服務(wù)只對(duì)一個(gè)接口可用,所以你需要提供內(nèi)部網(wǎng)絡(luò)的IP地址來綁定。在這種情況下,對(duì)于通過外部接口連接的客戶端來說,它看上去根本沒有80端口。
事實(shí)上,你可以運(yùn)行另外一臺(tái)單獨(dú)的服務(wù)器,讓他綁定一臺(tái)外部服務(wù)器的80端口。
事實(shí)上,可以通過調(diào)用bind()函數(shù)來吧客戶端socket綁定到一個(gè)特定的IP地址和端口號(hào)。然而,客戶端的這種能力很少被使用,因?yàn)椴僮飨到y(tǒng)會(huì)自動(dòng)提供合適的值
"""
4、偵聽連接:
s.listen(5)
"""
在實(shí)際接收客戶連接之前的最后一步就是調(diào)用listen()函數(shù)。這個(gè)調(diào)用通知操作系統(tǒng)準(zhǔn)備接收連接。它只有一個(gè)參數(shù),這個(gè)參數(shù)指明了在服務(wù)器實(shí)際處理連接的時(shí)候,
允許有多少個(gè)未決(等待)的連接在隊(duì)列中等待。作為一個(gè)約定,很多人設(shè)置為5(很多操作系統(tǒng)根本不支持大于5的)。對(duì)于先到很多縣城或者多任務(wù)服務(wù)器來說,這個(gè)參數(shù)的意義不是很大,但也是 必須的。
"""
轉(zhuǎn)載于:https://www.cnblogs.com/leonchan/p/11274637.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的记-python socket服务器端四部曲的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse的基本设置
- 下一篇: python time模块详解