TCP-listener starten-Ausnahme in C#
Erstelle ich einen TCP-listener, indem mithilfe des folgenden Codes:
TCPListener = new TcpListener(IPAddress.Any, 1234);
Beginne ich zu hören-TCP-Geräten, indem mithilfe des folgenden Codes:
TCPListener.Start();
Aber hier habe ich keine Kontrolle, ob der port in Gebrauch ist. Wenn der port ist im Einsatz, das Programm gibt eine Ausnahme: "Nur ein jede Socketadresse (Protokoll-Netzwerk-Adresse/Anschluss) normalerweise darf.".
Wie umgehe ich diese Ausnahme? Ich möchte, um Benutzer zu warnen, dass der port in Gebrauch ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie einen try/catch-block, um
TCPListener.Start();
- und catch SocketException aus. Auch wenn Sie öffnen mehrere verbindungen aus Ihrem Programm, dann ist es besser, wenn Sie halten Ihre verbindungen in einer Liste und vor dem öffnen einer Verbindung sehen Sie, wenn Sie bereits eine Verbindung geöffnetIst es nicht eine gute Idee, um eine Ausnahme zu überprüfen, ob der port in Benutzung ist oder nicht. Verwenden Sie die
IPGlobalProperties
- Objekt auf ein array vonTcpConnectionInformation
Objekte, die Sie dann zu befragen, über die Endpunkt-IP-Adresse und port.Für details Lesen Sie bitte diese.
Für die Handhabung der Ausnahme, die Sie verwenden
try/catch
als habib vorgeschlagenFangen Sie es und zeigen Sie Ihre eigenen Fehler Meldung.
Den Typ der Ausnahme prüfen und verwenden Sie diesen Typ, in der catch-Klausel.
Steckte es in eine
try catch
block.Verwenden von try-catch-Blöcke und catch-der SocketException.
Gut, wenn man bedenkt, dass Sie reden außergewöhnliche situation, nur behandeln diese Ausnahme mit geeigneten
try/catch
block, und informieren eines Benutzers über eine Tatsache.