[Armadillo:03020] Re: アルマジロ -220 について
Hiroshi Ito
email@hidden
2008年 6月 18日 (水) 14:21:43 JST
伊藤です。
From: Hirofumi Momose <email@hidden>
Subject: [Armadillo:03013] Re: アルマジロ -220 について
Date: Tue, 17 Jun 2008 21:21:54 +0900
Message-ID: <email@hidden>
> やりかた1
>
> connect()など、ブロッキングするシステムコールの前でalarm()をセットする。
> シグナルハンドラのセットは必要だったような気がします。そうしないとBroken
> Pipeで終了してしまうような。
>
> やりかた2
>
> ソケットを非同期モードにして、select()する。
>
> 簡単なのはやりかた1です。
やりかた3
man 7 socket
...
ソケットオプション
これらのソケットオプションは、 setsockopt(2) を用いれば設定でき、 get‐
sockopt(2) を用いれば取得できる。但し、どのソケットの場合もソケットレベ
ルには SOL_SOCKET を指定すること。
...
SO_RCVTIMEO と SO_SNDTIMEO
送信・受信のタイムアウトを指定する。これを越えるとエラーを報告す
る。引き数は struct timeval である。入出力関数がタイムアウト時間
の間ブロックされ、かつデータの送信または受信が行われていた場合は
、転送されたデータ量が関数の返り値となる。何もデータが転送されず
にタイムアウトに達した場合は、 -1 を返し、 errno に EAGAIN か
EWOULDBLOCK を設定され、あたかもソケットに非ブロッキングが指定さ
れたように見える。タイムアウト値に (デフォルト値である) 0 に設定
すると、操作は決してタイムアウトしなくなる。
...
バージョン
...
で登場した。 sysctl も Linux 2.2 で登場した。 SO_RCVTIMEO と SO_SND‐
TIMEO は Linux 2.3.41 以降でサポートされている。それ以前は、タイムアウ
トはプロトコル固有の固定の設定値で、読み書きをすることはできなかった。
私はいつも、select 使っちゃうので、これ実際にやってみた事はなかったのですが、
試しに、今、connect の前にやってみたら、タイムアウトが起きると、EINPROGRESSで
帰ってきました。 Armadilloではなくて、Intel ですが。
--------
メディアラボ株式会社 伊藤 博
URL http://www.mlb.co.jp
TEL 03-5294-7255 FAX 03-5294-7256
>
> --
> Hirofumi Momose <email@hidden>
>
>
> On Tue, 17 Jun 2008 20:00:38 +0900 (JST)
> 國井 <email@hidden> wrote:
>
> > 國井と申します。
> > ご存知の方見えましたらお願いします。
> > 現在、ソケット通信を行っています。
> > ソケット作成して、コネクト(connect)するとき、相手がいな
> > いとタイムアウト時間が長い為、処理上不具合がある為、短縮
> > したい。
> > コネクトしてからタイムアウトする時間を3秒程度にする方法
> > ご存知でいたら、お教えください。
> > 以上
> >
> > --------------------------------------
> > GANBARE! NIPPON! Chance to win 50,000 Yahoo! Points!
> > http://pr.mail.yahoo.co.jp/ganbare-nippon/
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/mailman/listinfo/armadillo
> >
>
>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内