VxWorks sockLibはsetsockoptがwinsockのようにrecv呼び出しのタイムアウトを設定するために使用できるSO_RCVTIMEOオプションをサポートしていますか?ここで VxWorks sockLibは、setsockoptがwinsockのようにrecv呼び出しのタイムアウトを設定するために使用できるSO_RCVTIMEOオプションをサポートしていますか?
は、Windowsでのコールの例です:int timeout = 30000; // 30 seconds
status = setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(int));
このことについて混乱を招く事はのsetsockoptによって返されるステータスは、未知のオプションからエラーを示すものではありませんとSO_RCVTIMEOはsockets.hで定義されていることです。コールは依然として目的のアクションを生成しません。サポートされていることを示すドキュメントは見つかりません。
サポートされていない場合は、同等のアプローチの提案はありますか?
私はVxWorks 5.4を使用しています。私はそれがそれ以降のバージョンで動作するかどうかを知ることに興味があります。
私はよく分かりませんが、ここでは考慮すべき点が1つあります。 WindowsではSO_RCVTIMEOにDWORDを設定していますが、ほとんどのUNIXではstruct timevalを使用しています。多分これは問題ですか?しようとするとどうなります:struct timeval tv; tv.tv_sec = 30; setsockopt(sockid、SOL_SOCKET、SO_RCVTIMEO、(char *)&tv、sizeof(struct timeval)); – ribram
返事をありがとう。はい、私は改善なしで以前これを試しました。 – kingbob939