Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    Solved Running Qt Example client/server not working

    General and Desktop
    network client server qtnetwork
    3
    17
    6218
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      marlenet15 last edited by

      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?

      kshegunov 1 Reply Last reply Reply Quote 0
      • kshegunov
        kshegunov Moderators @marlenet15 last edited by

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

        Read and abide by the Qt Code of Conduct

        1 Reply Last reply Reply Quote 0
        • M
          marlenet15 last edited by

          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.

          kshegunov mrjj 2 Replies Last reply Reply Quote 0
          • kshegunov
            kshegunov Moderators @marlenet15 last edited by

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

            Read and abide by the Qt Code of Conduct

            M 1 Reply Last reply Reply Quote 1
            • M
              marlenet15 @kshegunov last edited by

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

              1 Reply Last reply Reply Quote 0
              • mrjj
                mrjj Lifetime Qt Champion @marlenet15 last edited by mrjj

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

                M 1 Reply Last reply Reply Quote 0
                • M
                  marlenet15 @mrjj last edited by

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

                  mrjj 1 Reply Last reply Reply Quote 0
                  • mrjj
                    mrjj Lifetime Qt Champion @marlenet15 last edited by mrjj

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

                    M 1 Reply Last reply Reply Quote 1
                    • M
                      marlenet15 @mrjj last edited by

                      @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

                      mrjj kshegunov 2 Replies Last reply Reply Quote 0
                      • mrjj
                        mrjj Lifetime Qt Champion @marlenet15 last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • kshegunov
                          kshegunov Moderators @marlenet15 last edited by

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

                          Read and abide by the Qt Code of Conduct

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            marlenet15 @kshegunov last edited by

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

                            kshegunov 1 Reply Last reply Reply Quote 0
                            • kshegunov
                              kshegunov Moderators @marlenet15 last edited by

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

                              Read and abide by the Qt Code of Conduct

                              M 1 Reply Last reply Reply Quote 1
                              • M
                                marlenet15 @kshegunov last edited by

                                @kshegunov Do you know of any good examples? Thank you.

                                kshegunov 1 Reply Last reply Reply Quote 0
                                • kshegunov
                                  kshegunov Moderators @marlenet15 last edited by

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

                                  Read and abide by the Qt Code of Conduct

                                  M 1 Reply Last reply Reply Quote 1
                                  • M
                                    marlenet15 @kshegunov last edited by

                                    @kshegunov Thank you so much!

                                    kshegunov 1 Reply Last reply Reply Quote 0
                                    • kshegunov
                                      kshegunov Moderators @marlenet15 last edited by kshegunov

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

                                      Read and abide by the Qt Code of Conduct

                                      1 Reply Last reply Reply Quote 2
                                      • First post
                                        Last post