我正在学习使用SO_SNDTIMEO和SO_RCVTIMEO来检查超时。与读取套接字一起使用很容易。但是当我想检查写入超时时,它总是返回成功。这是我所做的:(全部处于阻塞模式)
- 在服务器开始写入之前关闭客户端读取套接字并退出
- 在服务器开始写入之前终止客户端
- 在接受之后但在写入之前拔下服务器的电缆
好吧,似乎所有这些案例都成功返回了。我认为原因应该是端口是由os管理的资源,并且在客户端,程序消失后,tcp连接仍然显示FIN_WAIT2状态。
那么,有没有什么方便的方法来模拟某些write可以接收错误的情况,例如EPIPE,EAGAIN?