Linux Socket::connect 和 QT::connect 混合

问题描述 投票:0回答:1

我正在用Qt编写一个程序。我有一个从QWidget派生的类。在它的构造函数中我想使用Linux Socket连接方法。并且还想使用Qt连接信号和插槽方法。 我该怎么做。因为当我使用 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()));

}

linux qt sockets
1个回答
2
投票

调用带

::
前缀的socket的connect方法:

...
if(::connect(client_fd, (struct sockaddr *) &serv_addr, sizeof(serv_addr))){
...
© www.soinside.com 2019 - 2024. All rights reserved.