(fwd) Re: bind()

Andrey Gerzhov (kittle@freeland.alex-ua.com)
Thu, 10 Sep 1998 14:11:50 +0300 (EEST)

-- forwarded message --
Path: freeland.alex-ua.com!barmaglot.alex-ua.com!f188.n463.z2!f116.n463.z2!f58.n463!f238.n5020!f400.n5020!ddt.demos.su!fido-news-server
Newsgroups: fido.ru.unix
Distribution: fido
X-Comment-To: All
From: Alexandre Snarskii <snar@paranoia.ru>
X-FTN-Sender: Alexandre Snarskii <Alexandre.Snarskii@f400.n5020.z2.fidonet.org>
Date: Mon, 07 Sep 98 11:59:12 +0300
Subject: Re: bind()
Message-ID: <6t0795$3rt$1@devil.nevalink.ru>
References: <2630697759@f28.n5004.z2.fidonet>
Organization: Уголочек неба..
X-FTN-AREA: RU.UNIX
X-FTN-MSGID: devil.nevalink.ru 24116e67
X-FTN-REPLY: 2:5004/28@fidonet 9ccd431f
X-FTN-Tearline: ifmail v.2.14dev2
X-FTN-Origin: Уголочек неба.. (2:5020/400@fidonet)
X-FTN-SEEN-BY: 50/381 520 615 993 461/121 463/5 18 58 68 72 89 93 116 126 130 156
X-FTN-SEEN-BY: 463/159 166 173 177 188 220 244 246 306 316 432 600 690 707 709
X-FTN-SEEN-BY: 463/1006 464/100 465/185 466/10 467/10 469/124 999 478/20 490/63
X-FTN-SEEN-BY: 4613/204 4614/1 6 4615/7 21 4623/17 4625/3 4631/13 4635/4 5001/15
X-FTN-SEEN-BY: 5001/211 5002/16 5003/15 5006/1 5007/1 5011/13 201 5012/1 5015/28
X-FTN-SEEN-BY: 5020/62 68 79 118 204 238 255 300 302 400 443 487 510 748 1057 1169
X-FTN-SEEN-BY: 5020/1200 1381 1851 4000 5022/5 5023/1 11 5024/11 5027/16 5028/51
X-FTN-SEEN-BY: 5029/5 5030/115 5032/3 5034/1 5036/1 2 5049/1 6 256 5050/5050
X-FTN-SEEN-BY: 5051/15 5054/9 10 5055/44 5057/1 5058/24 5059/2 5060/88 5061/7 15
X-FTN-SEEN-BY: 5061/48 5064/5 5065/1 10 5066/2 5069/1 2 5074/9 5075/10 5077/3
X-FTN-SEEN-BY: 5078/15 5080/80 1003 5083/21 5084/10 5085/250 5094/5094 5100/21
X-FTN-PATH: 5020/400 238 463/58 116
X-FTN-PATH: 463/188
Lines: 20
Xref: freeland.alex-ua.com fido.ru.unix:1324

George Brink <George.Brink@f28.n5004.z2.fidonet.org> wrote:
GB> Я тут с сокетами pаботаю... И вот иногда мне пpиходится пpибивать повисший
GB> сеpвеp. А повтоpно запустить не могу - bind() pугается что адpес уже занят.
GB> Как можно пpинудительно освободить адpес:поpт? А то я пока кpоме reboot
GB> дpугих способов не знаю :(

Во первых, по завершению работы сервера полезно говорить
shutdown(s,2);
close(s);
( s - твой сокет )
Во вторых при старте сервера полезно говорить
int yes=1;
s=socket(...) /* это у тебя и так есть :) */
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(yes)) ;
setsockopt(s,SOL_SOCKET,SO_REUSEPORT,&yes,sizeof(yes)) ;

и только потом уже bind(s,...)

-- 
Alexandre Snarskii
the source code is included.
-- end of forwarded message --

-- 
С тем, что не помешает никогда,
                                               Kittle