記 python socket伺服器端四部曲

2022-08-22 22:03:11 字數 895 閱讀 4635

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的)。對於先到很多縣城或者多工伺服器來說,這個引數的意義不是很大,但也是 必須的。

Python Socket程式設計之TCP服務

socket server tcp.py import socket import random 建立例項 sk socket.socket 定義ip和埠 ip port 127.0.0.1 8888 繫結監聽 sk.bind ip port 設定最大鏈結數 sk.listen 5 輪詢,不斷的接收...

簡單的python socket服務端 客戶端例子

服務端 usr bin python3 import socket socket模組 import subprocess 執行系統命令模組 host 127.0.0.1 port 50007 s socket.socket socket.af inet,socket.sock stream 定義so...

python socket伺服器與裝置通訊

首先建立兩份 乙份執行於伺服器,乙份執行於裝置端 參考 裝置端from socket import host 149.28.159.155 指定客戶端訪問host port 21567 bufsiz 1024 addr host,port tcpclisock socket af inet,sock...