vc++ 2008 で TCP ソケット アプリケーションを作成しました。「送信」操作に x 秒以上かかる場合はタイムアウトさせたいです。そのために私は使ってみました
char *optValue = "5000";
setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, optValue, sizeof(optValue));
成功を返しますが、「送信」は期待どおりに動作しませんでした。次に、で試しました
tv.tv_sec = 10;
tv.tv_usec = 0;
FD_SET(accept_socket, &write_mask);
select(socket, (fd_set *)0, &write_mask, (fd_set *)0, &tv);
それでも「送信」は、設定されたタイムアウト値に従って動作していません。正しい方法であるかどうかを確認してください。