1、TCP連接的建立方法
客戶端在建立一個TCP連接時一般需要兩步,而服務器的這個過程需要四步,具體見下面的比較。
步驟 | TCP客戶端 | TCP服務器 |
第一步 | 建立socket對象 | 建立socket對象 |
第二步 | 調用connect()建立一個和服務器的連接 | 設置socket選項(可選) |
第三步 | 無 | 綁定到一個端口(也可以是一個指定的網卡) |
第四步 | 無 | 偵聽連接 |
下面具體來講這四步的建立方法:
第一步,建立socket對象:這里與客戶端一樣,依然是:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
第二步,設置和得到socket選項
python定義了setsockopt()和getsockopt(),一個是設置選項,一個是得到設置。這里主要使用setsockopt(),具體結構如下:
setsockopt(level,optname,value)
level定義了哪個選項將被使用。通常情況下是SOL_SOCKET,意思是正在使用的socket選項。它還可以通過設置一個特殊協議號碼來設置協議選項,然而對于一個給定的操作系統,大多數協議選項都是明確的,所以為了簡便,它們很少用于為移動設備設計的應用程序。
optname參數提供使用的特殊選項。關于可用選項的設置,會因為操作系統的不同而有少許不同。如果level選定了SOL_SOCKET,那么一些常用的選項見下表:
選項 | 意義 | 期望值 |
SO_BINDTODEVICE | 可以使socket只在某個特殊的網絡接口(網卡)有效。也許不能是移動便攜設備 | 一個字符串給出設備的名稱或者一個空字符串返回默認值 |
SO_BROADCAST | 允許廣播地址發送和接收信息包。只對UDP有效。如何發送和接收廣播信息包 | 布爾型整數 |
SO_DONTROUTE | 禁止通過路由器和網關往外發送信息包。這主要是為了安全而用在以太網上UDP通信的一種方法。不管目的地址使用什么IP地址,都可以防止數據離開本地網絡 | 布爾型整數 |
SO_KEEPALIVE | 可以使TCP通信的信息包保持連續性。這些信息包可以在沒有信息傳輸的時候,使通信的雙方確定連接是保持的 學習交流
熱門圖片
猜你喜歡的新聞
新聞熱點 2020-02-23 14:27:16
2020-02-22 09:45:28
2020-02-22 09:42:20
2020-02-22 09:39:07
2020-02-21 16:46:56
2020-02-20 10:01:00
疑難解答 |