Running Qt Example client/server not working
-
@marlenet15 said:
Hi,However, when I enter the port number that was given to me by the server into the client side, nothing happens.
How do you mean? Does it hang? Does it crash? Does the button remain inaccessible?
Do I have to do something extra?
Not to my knowledge, no.
Kind regards.
-
It does not crash. After I click the button "get fortune", nothing happens. From what I read in the code, if the client was not able to find the server then it would output that it was not able to find it. However, I get no errors back at all.
-
@marlenet15
That's strange. Is it possible the connection times out? What happens if you wait a little? Could you check (if running on windows for example) that there's no system tool that interferes with the network connection?Kind regards.
-
@kshegunov I have been waiting for at least 5 minutes and nothing happens. I am running Qt on Linux and I don't think anything is interfering it.
-
Hi
The IP the server find/shows might not be valid.
for me it was not. (just ran the samples)
use localhost for client
and it works for me.That ip is not my local IP, nor my wan.
No interface seems to have it.So be sure the IP it shows is correct :)
-
@mrjj On terminal I ran ifconfig and under wlan it shows the ip address that is shown on the fortune server. So what you are using is to use 127.0.0.1 on the client and server side as the ip address? Because that doesn't work either. :/
-
@marlenet15
Ok so in linux it find right ip I guess. ( im on win)
yes local host is that 127.x.x.x ip.
And i use it for server IP. + the listed port.Are u running both samples on same machine?
It works here both for win 7 and win 10.
-
@mrjj I am doing exactly as you are telling me but nothing. Also, I am using Threaded Fortune Server. Are you using that as well?
So in my Threaded Fortune Server I have :
IP: 192.168.1.209
port: 45127In my fortune client I have:
Server name: localhost
port: 45127 -
@marlenet15
nope, im using the "simple" ones.local host should work if both server and client is run on same machine.
I will check tomorrow when i have a linux to see.
-
@marlenet15
That's really, really strange. Could you run the client code through the debugger? What would be the TCP error the client gets?
(I don't have Qt 4 to test, sorry).Kind regards.
-
@kshegunov Ok So I used the regular Fortune Server and it works. So I am wondering why with the Threaded Fortune Server it does not work. The thing is I need to use threaded server.
-
@marlenet15 said:
So I am wondering why with the Threaded Fortune Server it does not work. The thing is I need to use threaded server.
Well, perhaps the example is broken; it has happened. But in any case the threaded fortune server is not really a good example of a threaded TCP server, not for real work anyway.
Kind regards.
-
@kshegunov Do you know of any good examples? Thank you.
-
@marlenet15
Honestly, no. But I was about to write something as an example for a library of mine, so I'll post when I have it.
Meanwhile, you should look up how to use the asynchronous TCP socket API in Qt and make your code work in single thread. Look here for example. When that's done it takes very little modification to make it work in multiple threads.Kind regards.
-
@kshegunov Thank you so much!
-
@marlenet15
Hi,
Here you can find a threaded TCP server example. You can ignore the module specific classesQDaemonApplication
(think of it asQCoreApplication
) andQDaemonLog
you can substitute withQDebug
.Enjoy!
Kind regards.