[Armadillo:07394] Re: ソケット通信においてSO_REUSEADDRオプションが効かない

Sugitani Naoki email@hidden
2011年 7月 13日 (水) 08:28:28 JST


To: 竹之下 殿
From: 杉谷@ChAS

毎々お世話になっております。

レスが遅くなり申し訳ありません。

> Linux側のコードを見せていただくことはできますか?

抜粋ですが、以下に示します。
pdfから手打ちで転記してますので、誤字がありましたらご容赦下さい。

int cs;
cs = socket(AF_INET, SOCK_STREAM, 0)

setsockopt(cs, SOL_SOCKET, SO_REUSEADDR, &sockopt, sizeof(sockopt));

bind(cs, (struct sockaddr *)&addr, sizeof(addr))

弊社システムでは、クライアント側もサーバ側も固定IPアドレス、
固定ポート番号での通信を行う必要があるため、SO_REUSEADDRオプションを
使用しております。

> (サーバーからクライアントに接続しに行くことがあるのでしょうか?)

サーバからクライアントへの接続はありません。

以上、よろしくお願いします。

> 竹之下です。
> 
> Linux側がクライアントなのですね。
> SO_REUSEADDR は通常、サーバー側のソケットで指定するものだと
> 思うのですが、Linux側のコードを見せていただくことはできますか?
> 全体のコードではなく、該当部分だけで良いです。
> 
> (サーバーからクライアントに接続しに行くことがあるのでしょうか?)
> 
> (2011年07月11日 15:31), Sugitani Naoki wrote:
> > To: 各位
> > From: 杉谷@ChAS
> > 
> > 千代田アドバンスト・ソリューションズの杉谷と申します。
> > 毎々お世話になっております。
> > 
> > armadillo-220(linux)を使用してソケット通信クライアントを構築しております。
> > 通信の間隔を狭めたくてsocketコマンドのオプションにSO_REUSEADDRを
> > 指定し、TIME_WAIT中でも接続可能としておりますが、サーバの違いに
> > より挙動がことなっております。(添付ファイル参照)
> > 
> > iTronで構築したサーバではSO_REUSEADDRが効かず、TIME_WAIT後
> > でないと接続できません。(期待しない挙動)
> > 一方、windowsで構築したサーバではTIME_WAIT中でも接続可能です。(期待する挙動)
> > 
> > armadillo-220のlinuxでSO_REUSEADDRが無効になるような条件が
> > ありますでしょうか。
> > 
> > お忙しいところ大変恐縮ですがご教示をお願いします。
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > armadillo mailing list
> > email@hidden
> > http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
> 
> 
> -- 
> Koyo Takenoshita
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo






armadillo メーリングリストの案内