【每日一题】- 2020-09-04 - 多个进程如何监听同一个端口
azl397985856 opened this issue · 2 comments
azl397985856 commented
一个进程监听端口,如果多次启动一个进程会报错:“Address already in use!"。有什么方法可以实现多个进程监听同一个端口呢?
feikerwu commented
进程监听端口会有三个流程
- 新建一个socket fd
- 将fd绑定到端口
- 开始监听端口
多个进程可以通过以下方式监听同个端口
- 进程在第2阶段bind到端口后,通过fork生成子进程,子进程继承了父进程的描述符,实现多进程监听
- linux 在新建socket的时候提供SO_REUSEPORT选项支持多进程监听
stale commented
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.