Linux Socket :: connect和QT :: connect mixed

时间:2014-06-01 13:22:13

标签: linux qt sockets connect

我正在用Qt编写程序。我有从QWidget派生的类。它的构造函数我想使用Linux Socket连接方法。还想使用Qt connect Signal&插槽方法。 我怎么能这样做。因为当我使用Socket连接方法时,编译器认为我正在使用Signal_Slot连接方法并给出参数不匹配的编译错误....

感谢您提供的任何信息。

这是我的代码:

Login_Page::Login_Page(QWidget *parent) :
QWidget(parent),
ui(new Ui::Login_Page){

ui->setupUi(this);
ui->error_lablel->hide();
//try connect to server
...
if(connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))){
    ui->login_button->setDisabled(true);
    ui->error_lablel->setText("cannot connect to server");
    ui->error_lablel->show();
    while(true){
        if(!(connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))))
           break;
    }
    ui->login_button->setDisabled(false);
    ui->error_lablel->hide();
}

connect(ui->login_button,SIGNAL(clicked()),this,SLOT(login()));

}

1 个答案:

答案 0 :(得分:2)

使用::前缀:

调用套接字的connect方法
...
if(::connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))){
...