c++ - QTcpServer如何从客户端socket中读取数据

标签 c++ qt sockets

我试图用 C++/Qt 实现一个 tcp 套接字服务器。 首先,clientConnection 本地声明确实有效。

QTcpSocket *clientConnection = tcpServer->nextPendingConnection();

但是,当我试图在头文件中用私有(private) QTcpSocket 类声明套接字而不是将其声明为本地类时,为了在 ReadReady() 中使用 QTcpSocket->read,我遇到了错误。怎么会出现这些问题?

void Server::respondNewConnection()
{
    clientConnection = tcpServer->nextPendingConnection();
    connect(clientConnection, &QAbstractSocket::disconnected,
        clientConnection, &QObject::deleteLater);
    connect(clientConnection, SIGNAL(readyRead()), this, SLOT(ReadyRead()));

    clientConnection->write("[server]Welcome to server...", 100);
    qDebug() << "02[server]Welcome to server..."<<endl;
    statusLabel->setText(tr("test!"));


}

void Server::ReadyRead(){

qDebug() << "04[server]Ready to Read..." << endl;

/*
char buffer[100];
const int buffer_size = 100;
tcpSocket->read(buffer, buffer_size);
qDebug() << "05[server]Message from client: " << buffer << endl;
*/
}

最佳答案

我认为您可能需要添加前向声明:

class QTcpSocket;

在您出错的文件的顶部。

关于c++ - QTcpServer如何从客户端socket中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37781023/

相关文章:

c++ - 映射导致段错误。如何增加内存力?

c++标准部分ID,其中提到析构函数隐含地没有抛出

c++ - QXmlStreamReader.readNextStartElement() 两次读取起始元素

java - 使用套接字进行数据传输。 Java 和 Firefox 扩展

python - 如何从 Python 中的套接字读取字节数组

c++ - 二叉树旋转

绑定(bind)对象函数时出现 C++ 异步错误

qt - 如何通过拖动来旋转qml矩形?

c++ - Qt 的 MinGW、Code::Blocks 的 MinGW 和 MinGW 本身有什么区别吗?

java - 在后台接收消息