当没有监听套接字绑定但连接打开时获取EADDRINUSE的语义是什么

ss23

考虑一个完成的父进程,该进程socket/bind/accept将在打开该套接字的情况下派生子进程以与之通信,而父进程继续接受连接。然后,该父进程被杀死。

现在,另一个进程尝试在同一端口上绑定到父进程绑定到的相同地址,但是收到EADDRINUSE错误。

但是,当你完成这个过程sshd,这似乎sshd 能够重新绑定到已关闭的端口,而重新启动窗口期间(其中sshd的父进程没有运行),不同的程序(运行为不同的用户)刚刚获得EADDRINUSE。

这背后的语义是什么?为什么可以sshd重新绑定,但另一个用户进程却不能?

此外,我可以确认netstat -a | grep PORT只有子进程正在运行时(其他进程无法运行bind)的输出是,唯一的连接是ESTABLISHED一个,没有连接LISTEN

ss23

尽管我不了解所有语义(我找错了地方,或者缺少文档),但我相信关闭连接后(可能由设置SO_LINGER一定时间后,任何进程都无法执行除非已SO_REUSEADDR设置,否则请打开具有相同详细信息的新套接字

据我所知,这是为了防止某人在连接关闭后重新连接,并且该进程必须处理原先用于该进程的数据包。

man 7 socket没有记录这部分内容,SO_REUSEADDR因此很难弄清楚这个答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:套接字监听连接时显示消息“ Waiting for player ...”

来自分类Dev

为什么在iOS中打开套接字连接时无需打开新线程

来自分类Dev

获取套接字监听的事件

来自分类Dev

当我连接的套接字多于为侦听而指定的参数backlog时,为什么没有出现错误?

来自分类Dev

Nodejs和套接字io错误:监听EADDRINUSE

来自分类Dev

使用Angular JS,在更改路线时关闭Web套接字连接的正确方法是什么?

来自分类Dev

如果服务器打开到端口的连接但客户端没有发送任何东西会发生什么?(Java 服务器套接字)

来自分类Dev

SocketIO断开连接,退出套接字监听

来自分类Dev

java套接字监听不接受连接?

来自分类Dev

尝试重新打开连接时出现套接字关闭错误

来自分类Dev

当接口1上有:: 1时,为什么可以将此套接字绑定到:: 1%2?

来自分类Dev

当接口1上有:: 1时,为什么可以将此套接字绑定到:: 1%2?

来自分类Dev

为什么在静态连接时Web套接字的延迟会有所不同?

来自分类Dev

为什么在静态连接时Web套接字的延迟会有所不同?

来自分类Dev

Spring Integration TCP - 完全关闭监听套接字的好方法是什么

来自分类Dev

在没有UAC的情况下,如何允许Windows(7)中的程序打开套接字/连接到Internet?

来自分类Dev

没有这样的主机是已知的套接字连接

来自分类Dev

没有这样的主机是已知的套接字连接

来自分类Dev

systemd打开套接字,服务无法绑定到此套接字

来自分类Dev

将现有套接字重新连接到新服务器所需的最少工作是什么?

来自分类Dev

监听套接字仅在没有-std = c ++ 11的情况下在g ++中起作用

来自分类Dev

Apache2无法启动-没有可用的监听套接字-Ubuntu 14.04

来自分类Dev

Apache2无法启动-没有可用的监听套接字-Ubuntu 14.04

来自分类Dev

为什么当程序在正确的端口上侦听,套接字绑定到所有接口时为何“ [Errno 61] Connection拒绝”?

来自分类Dev

java.sql.SQLRecoverableException:使用连接池时是否没有更多数据要从套接字读取?

来自分类Dev

有什么权威的地方说接受监听套接字的多进程或线程是原子操作?

来自分类Dev

在Python中打开SSL套接字连接

来自分类Dev

如何快速打开多个套接字连接?

来自分类Dev

在给定端口号的情况下,有什么方法可以在java中获取套接字连接的状态

Related 相关文章

  1. 1

    Python:套接字监听连接时显示消息“ Waiting for player ...”

  2. 2

    为什么在iOS中打开套接字连接时无需打开新线程

  3. 3

    获取套接字监听的事件

  4. 4

    当我连接的套接字多于为侦听而指定的参数backlog时,为什么没有出现错误?

  5. 5

    Nodejs和套接字io错误:监听EADDRINUSE

  6. 6

    使用Angular JS,在更改路线时关闭Web套接字连接的正确方法是什么?

  7. 7

    如果服务器打开到端口的连接但客户端没有发送任何东西会发生什么?(Java 服务器套接字)

  8. 8

    SocketIO断开连接,退出套接字监听

  9. 9

    java套接字监听不接受连接?

  10. 10

    尝试重新打开连接时出现套接字关闭错误

  11. 11

    当接口1上有:: 1时,为什么可以将此套接字绑定到:: 1%2?

  12. 12

    当接口1上有:: 1时,为什么可以将此套接字绑定到:: 1%2?

  13. 13

    为什么在静态连接时Web套接字的延迟会有所不同?

  14. 14

    为什么在静态连接时Web套接字的延迟会有所不同?

  15. 15

    Spring Integration TCP - 完全关闭监听套接字的好方法是什么

  16. 16

    在没有UAC的情况下,如何允许Windows(7)中的程序打开套接字/连接到Internet?

  17. 17

    没有这样的主机是已知的套接字连接

  18. 18

    没有这样的主机是已知的套接字连接

  19. 19

    systemd打开套接字,服务无法绑定到此套接字

  20. 20

    将现有套接字重新连接到新服务器所需的最少工作是什么?

  21. 21

    监听套接字仅在没有-std = c ++ 11的情况下在g ++中起作用

  22. 22

    Apache2无法启动-没有可用的监听套接字-Ubuntu 14.04

  23. 23

    Apache2无法启动-没有可用的监听套接字-Ubuntu 14.04

  24. 24

    为什么当程序在正确的端口上侦听,套接字绑定到所有接口时为何“ [Errno 61] Connection拒绝”?

  25. 25

    java.sql.SQLRecoverableException:使用连接池时是否没有更多数据要从套接字读取?

  26. 26

    有什么权威的地方说接受监听套接字的多进程或线程是原子操作?

  27. 27

    在Python中打开SSL套接字连接

  28. 28

    如何快速打开多个套接字连接?

  29. 29

    在给定端口号的情况下,有什么方法可以在java中获取套接字连接的状态

热门标签

归档