套接字 實現埠重用

2022-05-15 15:41:41 字數 732 閱讀 6811

假如埠被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))

埠重用 套接字最大連線數

乙個tcp連線需要由四元組來形成,即 src ip,src port,dst ip,dst port 假設有客戶端建立了連線 src ip1,src port1,dst ip1,dst port1 那麼,如果我們還有listen在 src ip1,src port1 那麼當 dst ip1,dst ...

埠重用開啟cmdshell

要重用的埠是tomcat的預設http埠8080。源 include pragma comment lib,ws2 32.lib define listen port 8080 int main 此時,已經啟動tomcat,可以通過來訪問tomcat主頁。執行此程式時,如果沒有重用埠,繫結到8080...

埠重用 如何解除bind繫結

我找的關於setsockopt的資料 1.如果在已經處於 established狀態下的socket 一般由埠號和標誌符區分 呼叫 closesocket 一般不會立即關閉而經歷time wait的過程 後想繼續重用該socket bool breuseaddr true setsockopt s,...