[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 メーリングリストの案内