Re: WSAEADDRINUSE
- From: Ulrich Eckhardt <eckhardt@xxxxxxxxxxxxxx>
- Date: Fri, 19 Jan 2007 10:46:33 +0100
Karsten Schulz wrote:
Ich habe einen Socket -Server, der zuverlässig funktioniert.
(CAsyncSocket)
Mein Sender der sich durch Port listen wie ein Server verhält, verwendet
zum senden den Port 777 und zum empfang den Port 888.
Alles funktioniert solange ich den Sender nicht beende und irgendwann
neu starte, das führt zum WSA error WSAEADDRINUSE (10048)
was soviel bedeutet das der Port 888 oder 777 noch immer in use währe ?
Ich habe gelesen das man Bind() anzuwenden hat, anstatt ::Create(port,
flag) das verstehe ich aber nicht. Es gibt auch hinweise das ich
innnerhalb von ::Create CSocket::SetSockOpt(SOL_SOCKET, SO_REUSEADDR,
1) ; aufrufen soll um das problem zu beheben . (leider ohne Erfolg)
TCP oder UDP? Der Punkt ist dass in TCP nur ein Port fuer die
Verbindungs_aufnahme_ manuell gesetzt wird, die Ports fuel die Verbindung
selbst werden dynamisch zugewiesen. Irgendwie macht das damit dann keinen
Sinn was Du da sagst...
Ansonsten, Ports bleiben u.U. blockiert bis ein gewisser Timeout abgelaufen
ist. Das ordentliche Beenden mit shutdown() und so wirkt da Wunder.
Uli
--
FAQ : http://www.mpdvc.de
.
- Follow-Ups:
- Re: WSAEADDRINUSE
- From: Wilhelm Noeker
- Re: WSAEADDRINUSE
- From: Karsten Schulz
- Re: WSAEADDRINUSE
- References:
- WSAEADDRINUSE
- From: Karsten Schulz
- WSAEADDRINUSE
- Prev by Date: Re: WSAEADDRINUSE
- Next by Date: Re: Problem mit Linker
- Previous by thread: Re: WSAEADDRINUSE
- Next by thread: Re: WSAEADDRINUSE
- Index(es):
Relevant Pages
|