CAsyncSocket mit zwei creates
-
Hallo zusammen,
Ich habe ein kleines Netzwerktool geschrieben, in dem sich mehrere Clients mit einem Server verbinden können, kein Problem.Nun geht es aber darum, dass ich nun die Clients auch untereinander Verbinden möchte. Hierzu sende ich nach dem Accept beim Server eine Meldung mit den IPs der anderen Clients an den Client der sich gerade verbunden hat zurück. Wenn der Client nun diese "Alles ok, verbinde dich noch mit 127.0.0.1, etc" Meldung erhalten hat, startet er erstmal selbst einen Server damit er auch die Verbindungen anderer Clients annehmen kann. Und hier taucht auch schon das Problem auf.
Sobald ich ein Create machen möchte, gibts Laufzeitfehler. Ich hab ja bereits eins für die clientverbindung gemacht.
Wie würdet Ihr dieses Problem lösen?
-danke im vorraus-
hever
-
Hi
Den Server auf nem andren Port und nem eigenen Socket starten ?
-
Ich hab ja bereits einmal nen Client gestartet, welcher auch accepted wurde.
Jetzt möchte ich im Client nen Server auf nem speziellen eigenen Port starten. Weil der Client ja weiterhin erhalten bleiben soll.
Mein Problem ist glaub ich dass ich keinen neuen Socket nehme...
-
Ja,
Du kannst nicht mit deinem Socket ne Verbindung mit dem Server haben und gleichzeitig versuchen mit ihm zu hören. Das sind zwei Verbindungen für einen Descriptor. Das sollte nicht funktionieren. Du brauchst also einen eigenen Serversocket.
-
Ja danke, ist mir auch aufgefallen, ich hätt ja mal früher dran denken können, dummer Fehler. Jetzt klappt alles prima.
trotzdem danke
-
Ich habe es so gemacht wie es auf dieser Seite erklärt wurde.
Das Problem ist aber nachher: Wenn du auf andere Clients wartest steht deine Visu. Also kommst du über kurz oder lang nicht uber multithreading rum.
Ich habe auf jeden Fall meinen Chatraum geschrieben auf den grundlagen dieses Links: