Ich versuche, einen TCP-Server mit POCO C++ - Bibliotheken zu entwickeln. Ich fand einige Beispiele here. Zuerst versuchte ich Beispiel von Alex, aber Shutdown-Ereignis hat nicht funktioniert. EchoServer haben das gleiche Problem. Also, dann habe ich Cesar Ortiz Beispiel versucht und ein ungewöhnliches Problem bekommen. Nach einiger Zeit wirft Server einen Fehler:Multithread-TCP-Server mit POCO C++ - Bibliotheken
Und Verbindungen bekam Verbindung Timeout-Fehler, neue Verbindungen sowie. Beispiel mit Eventhandler semeed mehr korrekt, aber ich weiß nicht, wie ich Shutdown-Ereignis beheben kann.
Danke für Ihre Antwort Alex. Wie gesagt, jetzt benutze ich das zweite Beispiel wie bei Ihnen, aber ich kann nicht die Ursache für einen Fehler mit ‚src/errorhandler.cpp‘ Nachricht finden. Nachdem dieser Server Verbindungen akzeptiert, aber keine Bytes für neue Verbindungen sendet oder empfängt und "Verbindungstimeout" für bestehende Verbindungen auslöst. –
Sie müssen irgendwo in Ihrem Verbindungshandler eine Ausnahme auslösen. Da es in einem Thread ausgeführt wird, endet es in der Standardfehlerbehandlung. Ausnahme ist wahrscheinlich kein Nachkomme von std :: exception, daher kennt ErrorHandler nichts davon. Aber Sie liefern nicht genügend Informationen für eine definitive Antwort auf das Problem. Am besten führen Sie Ihren Code im Debugger aus und durchlaufen Sie ihn, um herauszufinden, wo sich die Ursache Ihres Problems befindet. – Alex
Wie gesagt, ich das Beispiel von Cesar Ortiz verwenden, Ich habe gerade ‚run‘ Funktion - [hier] (http://hastebin.com/lokadobeve.coffee) Als ich herausgefunden hat, wenn eine Verbindung keine Daten bekommen könnte weil es in der Warteschlange, aber ich kann nicht verstehen, warum? Wenn Stromanschlüsse 16 erreichen, werden alle neuen Verbindungen hinzugefügt, nachdem die Warteschlange und lehnte ab. In params set I maxqueued (3), MaxThreads (20) und threadidletime (100) –