登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. 未分类
  3. 正文

python解决socket server 未能立即释放监听端口,解决端口立即重用问题

2024-04-23

当python实现socket server,并且在ubuntu环境下运行时,当重启socket server时,发现老端口没有被立即释放,导致新server无法使用老socket server端口,导致报错。

解决方法:

tcp_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp_server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
tcp_server.setblocking(False)

主要通过设置setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)实现。

SO_REUSEADDR 是一个常见的套接字选项,在套接字关闭后允许重用地址。通常情况下,如果一个套接字关闭后,该套接字使用的地址(IP 地址和端口号)在一段时间内(称为 TIME_WAIT 状态)不能立即被再次使用,但设置了 SO_REUSEADDR 选项后,可以立即重用地址,这对于服务器程序在关闭后立即重启并绑定到相同的地址上是非常有用的。

标签: 暂无
最后更新:2024-04-23

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号