Unsolved readyread() signal doesn't emit after sendmessage() signal on pushbutton
-
@fari35
What is it you need beyond the Threaded Fortune Server Example ? How much are you based on that? -
@JonB In this example it's not shown how to send the message to the client if the signal is emitted from the main thread like here I'm making a UI for the server so I want to send the message to the client as soon as the send button is clicked, but I don't know how to do it. I'm not even getting help from anywhere.
-
Again: if you want to use thread (for whatever reason, maybe just to show that you're a famous programmer...), make sure you understand what you're doing and read the documentation and examples:
"It is important to remember that a QThread instance lives in the old thread that instantiated it, not in the new thread that calls run(). This means that all of QThread's queued slots and invoked methods will execute in the old thread. Thus, a developer who wishes to invoke slots in the new thread must use the worker-object approach; new slots should not be implemented directly into a subclassed QThread."
-
@fari35: To clarify the documentation quoted by @Christian-Ehrlicher's: Do not implement any slots in
fthread
. Instead, implement your slot in a separate QObject. Create that object together withtcpSocket
. -
@JKSH @Christian-Ehrlicher If I implement the slot in a separate Qobject then how can I send the data from that class as my TcpSocket is created in fthread class?
My issue is same as this one :
https://stackoverflow.com/questions/35927165/qt-multi-threaded-multi-client-tcp-server-socket-write-issue/65750692#65750692 -
@fari35 said in readyread() signal doesn't emit after sendmessage() signal on pushbutton:
If I implement the slot in a separate Qobject then how can I send the data from that class as my TcpSocket is created in fthread class?
Let's take a step back.
Imagine that your server only needs to communicate with one client. Imagine that you have no threads; your QTcpSocket is in the main thread. How can you send data from a QObject to the socket?
-
@JKSH I'll simply create a QTcpSocket and then after initializing it I'll send the data to the client
-
@fari35 said in readyread() signal doesn't emit after sendmessage() signal on pushbutton:
If I implement the slot in a separate Qobject then how can I send the data from that class as my TcpSocket is created in fthread class?
Did you actually ook at least once in the documentation. Hint: there is an example which describes how to properly create an object living in another thread and how to connect signals from/to them.
-
@Christian-Ehrlicher said in readyread() signal doesn't emit after sendmessage() signal on pushbutton:
Did you actually ook at least once in the documentation.
Perhaps if you throttle DOWN your nagging attitude a little ?
It seldom helps resolving TECHNICAL issue.
There seems to be few people perpetuating similar format recently , I am not particularly picking you.
Just saying. -
@AnneRanch said in readyread() signal doesn't emit after sendmessage() signal on pushbutton:
Perhaps if you throttle DOWN your nagging attitude a little ?
I simply don't understand how someone can ignore our hints the whole time and asking the same stuff over and over again. I already said in my first post here what's wrong and that threading is not that easy. So if it's not easy and I (ask someone who wants to learn) would read the documentation and study the examples to see how all is going.
-
@Christian-Ehrlicher said in readyread() signal doesn't emit after sendmessage() signal on pushbutton:
don't understand how someone can ignore our hints
I simply do not want to get into social analysis why people, in general , should be chastised, in any format , for their not choosing / following " our hints" or our opinions.
If you have a issue with that - you do have a choice NOT to participate - if that bothers you that much.
Cheers
PS
I used to call people who do not respond or follow advises "shooting star" . They generally only post once and then find a more rewarding means to entertain themselves .End of rant