Frage

Ich versuche, einen Client zu erstellen, der sich mit einem C-Server herstellen soll. Ich muss TCP verwenden. Ich habe bereits einen Server, der voll funktionsfähig ist, aber ich kann meinen Kunden nicht anschließen. Ich möchte keine Daten an den Server (an diesem Punkt) senden. Ich möchte nur eine Verbindung herstellen und ein neues Dialogfeld öffnen.

Hier ist der Code in void login :: on_pushbutton_clicked () Slot. // Pushbuton ist meine Anmeldeknopf

generasacodicetagpre.

Ich habe bereits die Menüklasse definiert und ich weiß, dass es funktionsfähig ist, da ich es ohne den Verbindungsteil getestet habe. Der IP-Abrufteil von den ZifferEndits ist ebenfalls funktionsfähig. Die Kunde ist in der Anmeldeklasse als Privatmitglied deklariert (qtcpspocket * -Set;).

Leider bin ich neu auf Qt und ich weiß nicht wirklich, was die Funktion 'WAITNEXTSTEP ()' ist. Ich habe gerade eine Rückkehr 1 gemacht. Ich bin unsicher, dass der Slot in der Connect-Funktion nicht sicher ist, da ich in vielen Beispielen bemerkte, dass es dort unterschiedliche Funktionen gab.

Wenn ich das Programm ausführe, erhalte ich keine Fehler und das Programm führt einfach gut aus. Wenn ich jedoch die Anmeldeknopf traf, friert das Dialogfeld für ~ 15 Sekunden lang ein - er ist nicht reagierend. Danach erhalte ich den Fehler bei der Verbindung von Connect '. Jede Hilfe wird sehr geschätzt.

War es hilfreich?

Lösung

Leider bin ich neu auf Qt und ich weiß nicht wirklich, was die Funktion 'WAITNEXTSTEP ()' ist. Ich habe gerade eine Rückkehr 1 gemacht. Ich bin unsicher, dass der Slot in der Connect-Funktion nicht sicher ist, da ich in vielen Beispielen bemerkte, dass es dort unterschiedliche Funktionen gab.

es hängt stark von Ihrem Anwendungsfall ab, aber das ist in der Regel der Handler der eingehenden Daten, was auch immer Sie damit tun möchten, möglicherweise, einschließlich, einschließlich, dass Sie es einfach in einer Merkmaltvariablen für den Moment speichern.

Wenn ich das Programm ausführe, erhalte ich keine Fehler und das Programm führt einfach gut aus. Wenn ich jedoch die Anmeldeknopf traf, friert das Dialogfeld für ~ 15 Sekunden lang ein - er ist nicht reagierend. Danach erhalte ich den Fehler bei der Verbindung von Connect '. Jede Hilfe wird sehr geschätzt.

Es liegt daran, dass die Verwendung von if(pSocket->waitForConnected()) die Verwendung des asynchronen QT-Betriebs der asynchronen QT-Funktion ist. Was ich vorschlagen möchte, besteht darin, stattdessen eine Verbindung zum angeschlossenen Signal zu tun :

void qabstractSocketSocket :: verbunden () [Signal]

Dieses Signal wird nach dem Aufruf von CONNECTTOHOST () abgegeben, und eine Verbindung wurde erfolgreich hergestellt.

HINWEIS: Bei einigen Betriebssystemen kann das angeschlossene () -Signal direkt von der CONNECTTOHOST () anrufen, um Verbindungen an den localHost aufzufragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top