[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:25403] TCP のportが解放されるとき



早間です。
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 公開システム