1. 程式人生 > >python利用setsockopt獲得埠重用

python利用setsockopt獲得埠重用

原作者

假如埠被socket使用過,並且利用socket.close()來關閉連線,但此時埠還沒有釋放,要經過一個TIME_WAIT的過程之後才能使用,這是TNN的相當煩銀的,為了實現埠的馬上覆用,可以選擇setsockopt()函式來達到目的。(以下是網上找到的一篇文章的一小段相關例子,試用之後,相當有效果,特此提取出來收藏)

埠複用的實現,我在這裡用Python舉個TCP埠複用的例子,UDP套接字要做的完全一樣。

import socket
tcp1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 在繫結前呼叫setsockopt讓套接字允許地址重用
tcp1.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) tcp2.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 接下來兩個套接字都也可以繫結到同一個埠上 tcp1.bind(('0.0.0.0', 12345)) tcp2.bind(('0.0.0.0', 12345))