我正在测试我编写的包装Linux套接字API的Socket类 .
在测试功能中,我执行以下操作:
-
创建服务器套接字
-
bind / listen
-
从新套接字连接
-
接受新套接字
-
用recv和send发送它们之间的一些数据 .
双方 -
呼叫关闭(SHUT_WR)
-
双方调用recv,并获得0返回值
-
在所有三个套接字上调用close
然后我再次重复这8个步骤 .
我在步骤的第二次迭代中间歇性地发现 bind
得到了EADDRINUSE .
我的印象是,有可能以这样的方式执行有序关闭,这是可以避免的 . 我知道 SO_REUSEADDR
- 但是有可能进行有序关机并阻塞直到端口再次可用吗?