我看到在源接口上看不到使用 write(2) 写入非阻塞 TCP 套接字的一小组消息,也没有被目标接收。
可能是什么问题呢?应用程序有什么方法可以检测到这一点并重试?
while (len > 0) {
res = write (c->sock_fd, tcp_buf, len);
if (res < 0) {
switch (errno) {
case EAGAIN:
case EINTR:
<handle case>
break;
default:
<close connection>
}
}
else {
len -= res;
}
}