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..
WSASocket oder Qt Pingen
-
- Beiträge: 22
- Registriert: 15. Juni 2012 14:27
- Wohnort: Berlin
- Kontaktdaten:
WSASocket oder Qt Pingen
Arbeite an einen Messagingnetzwerk Keppe Messenger
Re: WSASocket oder Qt Pingen
was nicht automatisch heisst, dass die QSockets immer und überall verwenden ....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..
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 ...
-
- Beiträge: 22
- Registriert: 15. Juni 2012 14:27
- Wohnort: Berlin
- Kontaktdaten:
Re: WSASocket oder Qt Pingen
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..
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
Re: WSASocket oder Qt Pingen
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.
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.
-
- Beiträge: 22
- Registriert: 15. Juni 2012 14:27
- Wohnort: Berlin
- Kontaktdaten:
Re: WSASocket oder Qt Pingen
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:
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.
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()));
}
Dieser Code ist für Leute die auch ein ping machen möchten.
Arbeite an einen Messagingnetzwerk Keppe Messenger