This signal is emitted after connectToHost() has been called and a connection has been successfully established.
Note: On some operating systems the connected() signal may be directly emitted from the connectToHost() call for connections to the localhost.
查看文档发现了官网的函数注解是这样的。
此信号是在调用connectToHost()并成功建立连接后发出的。注意:在某些操作系统上,connected()信号可能直接从connectToHost()调用发出,用于连接到localhost。因为我的服务器和客户端都在同一台电脑上,所以导致了,socket在调用了connectToHost()函数后就触发了connected信号。为了解决在本机测试会出现这样的问题,我们需要在调用connectToHost()函数后,再调用一下waitForConnected();函数,这样connected信号就会在成功连接后才发送信号。
补充一点,不要在主线程中使用waitForConnected()函数,因为这个函数会阻塞线程,如果一直连不上就会一直阻塞,放在主线程可能会导致程序一直处于阻塞状态。
QTcpSocket没有建立连接却触发了connected信号
于 2023-06-06 09:15:26 首次发布