• 7237阅读
  • 3回复

qt4.5.3  QTcpServer   newConnection信号无法 发射?? 万分感谢 [复制链接]

上一主题 下一主题
离线lqb198612
 
只看楼主 倒序阅读 楼主  发表于: 2010-09-07
— 本帖被 XChinux 执行加亮操作(2010-09-07) —
一个server类
class server : public QObject{
...
private slots:
    void connected();
private:
    QTcpServer *tcpserver;
}

server::server() {
    tcpServer = new QTcpServer();
    tcpServer->listen(QHostAddress("127.0.0.1"),  6178);
    connect(tcpServer, SIGNAL(newConnection()), this, SLOT(connected()));
}
void server::connected(){
    cout << "new connected" << endl;
}
int main(){
    server ser;
        pause();
}


照理说,有个client联它就会 发射newConnection信号,并调connected。。。(启动后 netstat -an | grep 6178 端口是listen了)  
可是不管我用 QTcpSocket, 还是c的socket,server这块就是没反映;;   后来直接  telnet 127.0.0.1 6178 , 连上了,但是 telnet 退不出来了,而且server端还是没反映。。。。。。。
这个问题搞了我几天还是没头绪,哪位仁兄能否帮我解惑???(万分感谢)

离线XChinux

只看该作者 1楼 发表于: 2010-09-07
在main()函数中,你没有创建QApplication对象,没有调用其exec()方法进入事件循环,所以无法处理信号/槽。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lqb198612
只看该作者 2楼 发表于: 2010-09-07
回 1楼(XChinux) 的帖子
明白了,谢谢你哈~~~~

如果我 另起一线程,让其执行server ,主线程还是pause, 这应该也可以吧??
离线XChinux

只看该作者 3楼 发表于: 2010-09-07
是否另起线程,依据你的需求来定吧。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个