[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[plamo:25403] TCP のportが解放されるとき
-
From:早間
-
Date:Sat, 30 Apr 2005 17:44:30 +0900 (JST)
- Subject: [plamo:25403] TCP のportが解放されるとき
- From: 早間<hayama@xxxxxxxxxxxxx>
- Date: Sat, 30 Apr 2005 17:44:16 +0900 (JST)
早間です。
socket を使用したTCP の受信プログラム(サーバ側)プログラムを終了さ
せてすぐに同じ受信プログラムを起動させると bind でエラーになります。
しばらくしてから(1〜2分)再度実行させると実行出来ます。
port が解放されていないのが原因だと勝手に考えているのですが、何が
原因なのでしょうか。
概略次のように使っています。
C で作っています。
fork は使っていません。
TCP port はご覧のように一般ユーザが使用できるものです。
また、shutdown と close に付けたリターンコードの判定は概要で
errno を調べていますが、エラーは起こっていません。
sokfd=socket(AF_INET, SOCK_STREAM, 0):
if (sokfd <0) {puts("socket error"); exit(0);}
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(3400);
rtn=bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
if (rtn < 0){puts(bind error");exit(0);}
listen(sockfd, 5);
newsocket=accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
while ( 1 ) {
send (newsocket ,message ,strlen(message),0);
read(newsocket, buff, sizeof(buff) );
shutdown(newsocket);
if (rtn < 0){puts("shutdown error");}
close (newsocket);
if (rtn < 0 ){puts("close error");}
break;
}
rtn=shutdown(sockfd,2);
if (rtn < 0){puts("shutdown error");}
rtn=close (sockfd);
if (rtn < 0){puts("close error");}
-- 早間 義博
メイリングリストから送られてくるメイル以外届きません。
- Follow-Ups
-
- [plamo:25404] Re: TCP のport が解放されるとき, Iqbal Abdullah
- [plamo:25406] Re: TCP のportが解放されるとき, KOJIMA Mitsuhiro
- [plamo:25408] Re: TCP のportが解放されるとき, Kaihei^Rastaman^Koyama
- [plamo:25409] Re: TCP のportが解放されるとき, Shun-ichi TAHARA (田原 俊一)
[検索ページ]
[メール一覧]
Plamo ML 公開システム