[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:25412] Re: TCP のportが解放されるとき
-
From:Kaihei^Rastaman^Koyama
-
Date:Sun, 1 May 2005 09:21:19 +0900 (JST)
- Subject: [plamo:25412] Re: TCP のportが解放されるとき
- From: Kaihei^Rastaman^Koyama <koyama@xxxxxxxxx>
- Date: Sun, 01 May 2005 09:21:04 +0900
小山@倉敷です。
それは Sun, 01 May 2005 07:01:42 +0900 (JST) 頃のことでした。
hayama@ab.wakwak.com さんはおっしゃいました...
> 疑問が生じたのは
> perl では
> socket(SOCKET,PF_INET,SOCK_STREAM,$proto);
> bind (SOCKET,$addr);
> listen(SOCKET,SOMAXCONN);
> accept(CLIENT,SOCKET);
>
> の状態で kill -HUP の実行で
> close(SOCKET)
> 実行後同じプログラムを、同じ引数で再起動して終了していますが問題
> 無く起動出来ています。
perl は使っていないので想像ですが、言語が実装している
socket が、標準で reuse するようになっているとか?
> また、SO_REUSEADDR (ソケットオプション)は
> /usr/src/linux/include/asm-i386/socket.h
> で定義されているので、kernel 依存性のある情報だと思うのですが、
> 移植性に問題は無いのでしょうか。と言うより
「kernel 依存性のある情報」というより、「OS とかアーキテクチャの
相違を kernel で吸収すべきもの」という感覚でとらえています。
SO_REUSEADDR とか SO_KEEPALIVE とかは一般的によく指定される
オプションだと思います。でも、KEEPALIVE の時間などは、OS 別
で異なるので、そのあたりは要注意です。
記憶ですが、Solaris とか FreeBSD あたりは同様に使用していました。
まあ、POSIX 準拠系は大抵は大丈夫ではないかと思ってます。
ただ、この部分は大丈夫でも、他の部分でどうしても ifdef などで
OS 別の実装をしないといけない場合も多いかもしれません。
また、こういう相違を python など、C より高級なプログラム言語は
吸収してくれやすいという事ですね。これも 100% ではありませんが...
---
_\|/_
(o o)
+----oOO-{_}-OOo--------------+
| Kaihei Koyama / KCT Corp. |
| RastamanEngineer |
| mailto:koyama@kct.co.jp |
| http://www.kct.co.jp |
+-----------------------------+
- Follow-Ups
-
- [plamo:25414] Re: TCP のportが解放されるとき, 早間
- References
-
- [plamo:25411] Re: TCP のportが解放されるとき, 早間
[検索ページ]
[メール一覧]
Plamo ML 公開システム