Solved how can i know that my LAN is working or not
-
@victor-wang
Is the timeout long enough to get response from the server? If not the connection will always fail -
@victor-wang What is the port you're using?
Also check what http://doc.qt.io/qt-5/qabstractsocket.html#error is returning.
From documentation http://doc.qt.io/qt-5/qabstractsocket.html#waitForConnected:
"Note: This function may fail randomly on Windows. Consider using the event loop and the connected() signal if your software will run on Windows."A note: there is no need to allocate socket on the heap, just use a local variable.
-
@the_
I had try to set the time to 5000.
But it still didn't work for me. -
-
@victor-wang
would be easier if you paste your code here and not on external sites as pictures ;) -
@victor-wang Error is not a signal it is just a method, call it if the connection doesn't succeed and print out its output:
qDebug() << socket->error();
Your code would be wrong even if error() would be a signal: you're trying to connect AFTER the connection failed. That means you would miss the signal.
-
@victor-wang Even better is http://doc.qt.io/qt-5/qiodevice.html#errorString
-
-
@victor-wang Yes, like this. Even better is http://doc.qt.io/qt-5/qiodevice.html#errorString
-
@jsulm
I'm using port 8888.I had tried it. and will show the error
"QAbstractSocket::SocketTimeoutError"And i if i use
qDebug<<socket->errorString();
It will show this error "Socket operation timed out"
So is that mean i had set the time too long?
-
@the_
My code is too long.
I'm using qtcreator via Xming.
So i can't copy my code, i just can type it.
And because of there are too many codes i have no time to type it.
That's why i using as picture. -
@victor-wang said in how can i know that my LAN is working or not:
So is that mean i had set the time too long?
No, it means that it was not possible to connect in that time.
You're doing it wrong. Please read documentation (http://doc.qt.io/qt-5/qabstractsocket.html#connectToHost): hostName is a URL not IP.
If you want to use IP then use http://doc.qt.io/qt-5/qabstractsocket.html#connectToHost-1 -
-
@victor-wang You're still doing it wrong. Please read documentation - I posted the links.
If you want to use IP address you need to pass http://doc.qt.io/qt-5/qhostaddress.html as parameter not a string. -
@jsulm
Is that mean i have to set address first like this?hostaddress->setAddress(192.168.120.115);
Then connect it like this?
socket->connectToHost(hostaddress,PT_lanHostPort);
Is that right?
-
@victor-wang Yes
socket->connectToHost(QHostAddress("192.168.120.115"), PT_lanHostPort);
Why do you allocate everything on the heap with new? hostaddress can be just a local variable:
QHostAddress hostaddress("192.168.120.115"); socket.connectToHost(hostaddress, PT_lanHostPort); // No need to allocate socket on the heap with new as well!
-
-
@victor-wang It is not a Qt thing, it is C++.
It should actually work even if authentication is required. Is port number correct? Can you ping this IP? -
@jsulm
I'm sure that i can ping this IP address!
But i don't know how to check the port number. -
@victor-wang Well, you should know on which port your server is listening.