(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