• 2556阅读
  • 2回复

[提问]Qt QTcpServer监听不到连接 [复制链接]

上一主题 下一主题
离线owenlang
 

只看楼主 倒序阅读 楼主  发表于: 2015-07-14
关键词: QT5QTcpServer问题
环境Qt5.3.2,ubuntu12.04 ,客户端 QTcpSocket 连接上来并且 socket 的状态也是 ConnectedState 了,但 server 端进入不到 incomingConnection
和这一篇帖子的问题一模一样
https://social.microsoft.com/Forums/en-US/a2b652ae-9ff0-46d0-be50-918ff2d6e61a/qt-qtcpserver?forum=1761
  1. 服务类
  2. class sfSocketServer : public QTcpServer
  3. {
  4. Q_OBJECT
  5. public:
  6.     sfSocketServer(QWidget *parent = 0);
  7.     ~sfSocketServer();
  8. private:
  9.     // Ui::sfSocketServerClass ui;
  10. private:
  11.     void incomingConnection(int socketId);
  12. };
  13. 服务实现文件
  14. sfSocketServer::sfSocketServer(QWidget *parent)
  15. : QTcpServer(parent)
  16. {
  17.     // ui.setupUi(this);
  18. }
  19. sfSocketServer::~sfSocketServer()
  20. {
  21. }
  22. void sfSocketServer::incomingConnection(int socketId)
  23. {
  24.     static int i = 0;
  25.     QMessageBox::about(NULL, "new Connection", "new Connection");//这段程序进不来
  26.     //ui.labelStatus->setText("收到" + QString::number(i) +"一个连接");
  27. }
  28. 主函数
  29. int main(int argc, char *argv[])
  30. {
  31.     QApplication a(argc, argv);
  32.     sfSocketServer w;
  33.     if (!w.listen(QHostAddress::Any, 5697))
  34.     {
  35.         exit(-1);
  36.     }
  37.     QPushButton quitButton("quit");
  38.     QObject::connect(&quitButton, SIGNAL(clicked()), &a, SLOT(quit()));
  39.     quitButton.show();
  40.     return a.exec();
  41. }



奇怪的是,同样的代码在Windows下却是正常的,程序必须要用在 ubuntu 上,不知道咋解决?
离线dbzhang800

只看该作者 1楼 发表于: 2015-07-15
建议:认真看看Manual中 incomingConnection() 的参数类型是什么
离线owenlang

只看该作者 2楼 发表于: 2015-07-21
不好意思忘记回复了,确实是参数类型不对导致的,以前是QT4的代码。多谢!
快速回复
限100 字节
 
上一个 下一个