Re: Netzwerkfrage - nicht so sehr VC++
- From: Stefan Näwe <please@xxxxxxxxxx>
- Date: Tue, 11 Apr 2006 09:51:42 +0200
Wilhelm Noeker schrieb:
Martin Becker schrieb:
Sende ich an einen UDP-Port, auf dem kein Prozess sitzt und wartet,
erzeugt ICMP eine "Port unreachable" Meldung, die (z.B. beim nächsten
WSARecvFrom) an mich weitergegeben wird als WSAECONNRESET.
Damit würde ich einen abgefaulten Client aus meiner Liste werfen.
Das Ganze funktioniert prächtig mit W2K und XP.
Unter NT4 SP3 kriege ich keinerlei Fehlercodes, also kein
WSAECONNRESET oder sonstwas zurück.
Die ICMP "Port unreachables" kommen an, wie mit Ethereal zu beobachten
ist.
Vielleicht weiß jemand, was man da machen kann....
Lösungsvorschlag habe ich keinen. Ich kann nur bestätigen, dass sich von
NT4 nach Win2K das Winsock-Verhalten tatsächlich geändert hat:
ICMP-Fehler werden heutzutage als WSAECONNRESET durchgereicht, unter NT4
war das nicht der Fall.
Ist mir damals in der umgekehrten Richtung aufgefallen, weil ein
Programm, das unter NT4 ohne Probleme lief, sich unter W2K über die
zusätzlichen Fehlermeldungen total erschrocken hat.
Mein Anwendungsszenario basiert auf WSAAsyncSelect(), und ich bekomme da
für jedes unzustellbare UDP-Paket eine FD_READ-Benachrichtigung. Das
anschließende recvfrom() schlägt fehl, und WSAGetLastError() liefert
WSAECONNRESET. Das alles aber wie gesagt erst ab W2K.
Wie hier beschrieben:
http://support.microsoft.com/?kbid=263823
/S
--
Stefan Naewe
naewe.s_AT_atlas_DOT_de
.
- References:
- Netzwerkfrage - nicht so sehr VC++
- From: Martin Becker
- Re: Netzwerkfrage - nicht so sehr VC++
- From: Wilhelm Noeker
- Netzwerkfrage - nicht so sehr VC++
- Prev by Date: Re: Visual Studio 2005 und Windows 95 => Error: IsDebuggerPresent ????
- Next by Date: Re: Netzwerkfrage - nicht so sehr VC++
- Previous by thread: Re: Netzwerkfrage - nicht so sehr VC++
- Next by thread: Re: Netzwerkfrage - nicht so sehr VC++
- Index(es):
Relevant Pages
|