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;
}
}