Ich hab ein Problem mit einer Netzwerk-Anwenung und wollte mal fragen, ob ich das richtig verstanden oder doch was vergessen habe:
- Ich hab einen Server und eine Client - Jeweils Klasse von AsyncSocket abgeleitet und Ereignisbehanldung mit Dialogklasse verknüpft - Der Server geht in den Listen-Modus
- Jetzt müsste beim Server ein OnAccept-Ereignis ausgelöst werden, das man so behandelt:
C++:
m_listen.Accept(m_socket);
wobei m_socket einfach ein weiterer Socket ist (den muss man nicht noch mit Create() erst erzeugen?)
Bei mir wird aber kein OnAccept-Ereignis ausgelöst. Die IP- und Port-Variablen haben beim Aufruf die richtigen Werte (und zwar 127.0.0.1 und 80 müsste also gehen...) Ist das vom Prinzip korrekt? Ich bekomme nämlich ein WSAGetLastError() == 0 beim Listen-Versuch.
hi, das OnAccept wird von dem listen-Socket aufgerufen - daher musste dir für deinen Server ein abgeleitetes AsyncSocket bauen das die OnAccept überschreibt. -- class God : public ChuckNorris { };
Ja, das weiß ich. Das hab ich auch oben geschrieben, dass ich abgeleitet habe. Die Accept-Method des Socket-Objekts ruft dann eine Methode der Dialog-Klasse auf. Aber es wird nicht mal die Accept-Methode der Socket-Klasse aufgerufen, das hab ich überprüft. Was bedeutet, denn das GetLastError 0 zurückgibt? Dieser Fehlercode ist in der MSDN nicht aufgelistet.