WSASocket oder Qt Pingen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
rafael9707s
Beiträge: 22
Registriert: 15. Juni 2012 14:27
Wohnort: Berlin
Kontaktdaten:

WSASocket oder Qt Pingen

Beitrag von rafael9707s »

Ich hab gesucht nach dem Headerfile Namen von dem WSASocket, hatte leider nichts gefunden

Weiß jemand welche header file ich für den WSASocket brauche, weil ich sonst leider nicht pingen kann :(

----------------------------------------------------------------------------------------------------------------------------------

Wenn jemand weiss wie man bei Qt pingt, weil das geht ja bei TeamSpeak ja auch, das läuft ja auch über Qt und es müsste auch bei mir dann gehen könn..
Arbeite an einen Messagingnetzwerk Keppe Messenger
veeman
Beiträge: 277
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: WSASocket oder Qt Pingen

Beitrag von veeman »

Siehe WSASocket unter Requirements.
-> Header: Winsock2.h
-> Library: Ws2_32.lib

mfg veeman
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: WSASocket oder Qt Pingen

Beitrag von RHBaum »

Wenn jemand weiss wie man bei Qt pingt, weil das geht ja bei TeamSpeak ja auch, das läuft ja auch über Qt und es müsste auch bei mir dann gehen könn..
was nicht automatisch heisst, dass die QSockets immer und überall verwenden ....

QSocket unterstützt IMHO nur UDP/Tcp ....
ICMP, also pings, wirst da nicht versenden und empfangen können.
Musst also "native" auf das netwerk-protokoll ...

was fertiges, bzw zum inspirieren findest z.b. hier:
http://verplant.org/liboping/

Ciao ...
rafael9707s
Beiträge: 22
Registriert: 15. Juni 2012 14:27
Wohnort: Berlin
Kontaktdaten:

Re: WSASocket oder Qt Pingen

Beitrag von rafael9707s »

Das mit include von WSASocket geht nicht..

liboping lässt sich leider nicht kompilen, also hab versucht es mit direkt in der Anwendung mit einzubinden, das ginge ned

Hat jemand ein Code wo es direkt drin steht wie man ein Server mit ICMP anpingt, weil sonst können ja die User nicht wissen was für ein Ping sie haben, also bei meiner Visual Basic von den Chat die alt ist, da ging es..
Arbeite an einen Messagingnetzwerk Keppe Messenger
veeman
Beiträge: 277
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: WSASocket oder Qt Pingen

Beitrag von veeman »

Lass doch das klassische ICMP Pingen ausen vor und implementiere eine PingPong bzw. KeepAlive Methode direkt über die QSocket-Schnittstelle deines Clientes/Servers.
Musst halt diese Nachricht priorisiert behandeln um einen genauere Zeitmessung durchzuführen.

Der Vorteil wäre dann hallt, dass du keinen plattformabhängigen Code zu schreiben brauchst und du weist nicht nur das die Gegenüberstelle noch Online sondern auch dass dein Programm noch online ist.
rafael9707s
Beiträge: 22
Registriert: 15. Juni 2012 14:27
Wohnort: Berlin
Kontaktdaten:

Re: WSASocket oder Qt Pingen

Beitrag von rafael9707s »

Also ich brauche ab jetzt "keine Hilfe" mehr

Der Client sendet ein ping
Der Server sendet ein pong

Der Client berechnet die Zeit seit dem er den Ping gesendet und der Server ihn das Pong gesendet hat

Code:

Code: Alles auswählen

void frmChat::on_pingDomain()
{
    if (tcpsocket.state() == tcpsocket.ConnectedState)
    {
        QTcpSocket socket2;
        socket2.connectToHost(ui->cbServer->currentText(),9501);
        if (!socket2.waitForConnected(1000))
        {
            QTimer::singleShot(500,this, SLOT(on_pingDomain()));
            return;
        }
        QTime before = QTime::currentTime();
        socket2.write(QString("ping\n").toAscii());
        socket2.flush();
        socket2.waitForReadyRead(500);
        if (socket2.readLine().trimmed() != "pong") goto GoToEnd;
        QTime after = QTime::currentTime();
        int getping = after.msecsTo(before);
        if (getping == -1)
        {
        }
        else
        {
            ui->labPing->setText("Ping: " + QString::number(getping).remove("-"));
        }
    }
    GoToEnd:
    QTimer::singleShot(500,this, SLOT(on_pingDomain()));
}
Würde ich jetzt nicht das remove machen, würde da ein Minus stehen, anders rum geht es ned..

Dieser Code ist für Leute die auch ein ping machen möchten.
Arbeite an einen Messagingnetzwerk Keppe Messenger
Antworten