ServerSocket1->Active = true ?
-
Hi,
welche Voraussetzungen muss ich denn erfüllen um einen inaktiven ServerSocket aktivieren zu können?
Wenn ich ServerSocket1->Active = true; ausführe, dann bekomme ich einen Windows Socket Fehler: Normalerweise darf jede SocketAddy nur einmal verwendet werden....
Ich verstehe den Fehler nicht, weil ich ja nur eine Instanz und einen ServerSocket am laufen habe und ihn nur aktivieren will. Die Fehlermeldung sieht aber irgendwie so aus, als will er mir sagen, dass ein ServerSocket bereits läuft.... ???
-
PS: Hat jmd vielleicht einen Link für so ein anderes Client-Server Beispiel?
Das im BCB unter examples enthaltene Bsp. hilft mir irgendwie nicht so richtig weiter. Die vermischen Server und Client und das verwirrt mich.
-
-
Thx.
Ne normale C-S Verbindung habe ich jetzt hin bekommen.Aber nun will ich eine reconnect-Funktionalität, bei der man auf einen neuen Port neu connecten kann.
Bei folgenden Code bekomme ich aber wieder die Fehlermeldung: Windows Socket Fehler: Normalerweise darf jede SocketAddy nur einmal verwendet werden....if(ServerSocket1->Active) ServerSocket1->Active = false; int port = EditPort->Text.ToInt(); ServerSocket1->Port = port; ServerSocket1->Active = true;Wieso? Ich habe ihn doch vorher deaktiviert.
-
OK, ich glaube ich habs.
Ich habe anscheinend auf bereits vergebene Ports zugegriffen, obwohl ich Bereiche ab 5000 gewählt habe. Ich dachte alles über 1023 kann man fast bedenkenlos nehmen...dem ist anscheinend nicht so.
-
Ab 1023 heißt nicht unbedingt das die Ports frei sind. Darunter sind genormte Ports, die man nicht verwenden soll. Sonder ja über 1023, wie du ja selbst weiß.
Aber denk mal drüber nach, du entwickelst ein Programm was Netzwerk unterstützung hat und ein Port belegt. Andere Programme (nicht DNS-Server, WebServer, POP3,SMTP, etc.) müßen auch über 1023 lauschen/abreiten.