Running Qt Example client/server not working



  • I am looking at the QtNetwork 4.8 where it contains the Fortune Client Example and Threaded Fortune Server Example which they are supposed to be run together. It says so right here: [http://doc.qt.io/qt-4.8/qt-network-fortuneclient-example.html]. When I compiled the two projects on my Qt there are no errors and they show the GUI just fine. However, when I enter the port number that was given to me by the server into the client side, nothing happens. Do I have to do something extra?


  • Qt Champions 2017

    @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.


  • Qt Champions 2017

    @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.


  • Qt Champions 2017

    @marlenet15

    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. :/


  • Qt Champions 2017

    @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: 45127

    In my fortune client I have:
    Server name: localhost
    port: 45127


  • Qt Champions 2017

    @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.


  • Qt Champions 2017

    @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.


  • Qt Champions 2017

    @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.


  • Qt Champions 2017

    @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!


  • Qt Champions 2017

    @marlenet15
    Hi,
    Here you can find a threaded TCP server example. You can ignore the module specific classes QDaemonApplication (think of it as QCoreApplication) and QDaemonLog you can substitute with QDebug.

    Enjoy!
    Kind regards.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.