(toppers-users 2567) Re: TINET 再送タイムアウトの検知
ABE Tsukasa
abe @ jo.tomakomai-ct.ac.jp
2006年 12月 31日 (日) 09:33:30 JST
tomo 様
苫小牧高専、情報工学科の阿部です。
>tcp_rcv_dat()の戻り値確認出来ました。
>受信データが取得出来ない間は、別処理を優先させたかったので
>ポーリング呼び出し(タイムアウト0指定)をしてしまっていたのがまずかったのですね。
>
>TMO_FEVRを指定したところ、E_CLSが返ってきました。
このような場合は、ノンブロッキングコールを使ってみてはいかがでしょうか?
コールバック関数を用意し、TCP 通信端点に登録します。
tcp_rcv_dat のタイムアウトの指定では、TMO_NBLK を指定すると、
受信データが取得できない場合でも、すぐ戻ってきますので、別処理が可能です。
コールバック関数とは、セマフォ等で同期させます。
tinet/netapp/tcp_echo_srv1.c 等を参考にしてください。
>どうもありがとうございました。
>また来年も宜しくお願いいたします。
こちらこそ、よろしくお願いいたします。
--
.\" 苫小牧工業高等専門学校 情報工学科 教授 阿部 司
.\" E-mail: abe @ jo.tomakomai-ct.ac.jp TEL/FAX: 0144-67-8937