微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

QTcpSocket连接

如何解决QTcpSocket连接

| 我正在尝试使用QTcpsocket和QTcpserver编写聊天。 我的几段代码 客户
ChatClient::ChatClient(QObject *parent)
    : QObject(parent) {
    connect(&tcpsocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error(QAbstractSocket::SocketError)));
    connect(&tcpsocket,SIGNAL(connected()),SLOT(requestForID()));
    connect(&tcpsocket,SIGNAL(readyRead()),SLOT(receiveMessage()));
    tcpsocket.connectToHost(QHostAddress::LocalHost,PORT);
}

void ChatClient::requestForID() {
    qDebug() << \"Connected,requesting for ID\";
    QByteArray segment;
    QDataStream out(segment);
    out.setVersion(QDataStream::Qt_4_7);
    out << (quint16)0 << ID;
    out.device()->seek(0);
    out << (quint16)(segment.size() - sizeof(quint16));
    tcpsocket.write(segment);
}

void ChatClient::error(QAbstractSocket::SocketError error) {
    qDebug() << \"Socket error\" << error;
}
服务器
ChatServer::ChatServer(QObject *parent)
    : QObject(parent) {
    if (!tcpserver.listen(QHostAddress::LocalHost,PORT)) {
        qDebug() << \"Unable to start the server\"
                 << tcpserver.errorString();
    }
    connect(&tcpserver,SIGNAL(newConnection()),SLOT(processConnection()));
}
客户端套接字永远不会连接。永远不会打印错误。 端口= 6178。 Runnig KUbuntu。从bash ping到localhost成功。 我究竟做错了什么?     

解决方法

我看不到您的代码中的任何错误,您确定您的Qt和“网络”工作正常吗? Qt应该发出一个错误,但至少您的代码段对我来说是正确的。也许您的代码永远不会被调用,请向方法中添加一些调试消息。 最后,您可以构建Qt Network示例,并测试该示例是否在您的计算机上运行。如果没有这些示例,请在此处查看:http://doc.qt.io/qt-5/examples-network.html(Fortune Server / Client for TCP)     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。