網(wǎng)站首頁 編程語言 正文
SO_REUSEADDR是創(chuàng)建socket時比較常用的選項,通過該選項讓多個socket可以
bind相同的端口。
具體來說SO_REUSEADDR帶來2個功能:
- 允許多個socket同時bind到相同的地址(IP+PORT)。
- 允許bind處于TIME_WAIT狀態(tài)的端口。
開啟這個選項,對于TCP而言,不同的socket可以bind到相同的地址,然后connect
不同的目標地址。如果試圖連接相同的目標地址,則會報錯,因為五元組都相同
時無法區(qū)分不同的連接。如果執(zhí)行l(wèi)isten操作,同樣會報錯,因為SO_REUSEADDR
不能用于listen,也就是說不能在相同地址上啟動多個tcp server。
UDP不需要listen,開啟SO_REUSEADDR使得UDP類型的socket可以重復bind相同的地址。
但是綁定成功并不意味著能正常接收數(shù)據(jù)。
UDP廣播和組播
- 所有socket都能收到數(shù)據(jù)。
UDP單播
- 總是最新創(chuàng)建的socket收到數(shù)據(jù)。
- 新創(chuàng)建的socket在close后,次新創(chuàng)建的socket開始接收數(shù)據(jù)。
REUSEPORT功能基本與REUSEADDR相似,不同點在于:
-
tcp使用REUSEPORT選項可以bind并listen相同的端口,多個listen以負載均衡的方式
接收新連接。但是連接創(chuàng)建后,數(shù)據(jù)接收是固定的。 -
udp使用REUSEPORT選項bind到相同地址,多個socket以負載均衡的方式接收數(shù)據(jù)。
-
REUSEPORT要求進程屬于相同的user,而REUSEADDR沒有這個要求。
參考鏈接:https://medium.com/uckey/so-reuseport-addr-2-2-how-packets-forwarded-to-multiple-sockets-ce4b83cd0fd2
原文鏈接:https://blog.csdn.net/skysky97/article/details/126252236
相關推薦
- 2022-11-14 深度強化學習預訓練,在線、離線
- 2021-12-18 通俗易通講解Android藍牙鍵值適配_Android
- 2023-01-08 C++?Boost?Assign超詳細講解_C 語言
- 2022-07-10 $route和this.$router區(qū)別
- 2022-02-02 使用layui框架時,select的onchange事件沒有生效。
- 2023-06-21 python相對包導入報“Attempted?relative?import?in?non-pack
- 2023-03-23 Python中win32com模塊的使用_python
- 2022-10-12 antd為Tree組件標題附加操作按鈕功能_Redis
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支