QTcpServer:向连接的客户端发送HTTP / 1.0 200 OK

时间:2011-04-14 23:09:52

标签: c++ qt shoutcast qtcpsocket

我设置了一个QTcpServer来监听Shoutcast流。 newConnection() - 信号按原样触发:

connect(tcpServer, SIGNAL(newConnection()), this, SLOT(handleClientComm()));

void IcecastServer::handleClientComm(){
    QTcpSocket *clientConnection = tcpServer->nextPendingConnection();
    qDebug() << clientConnection->write("HTTP/1.0 200 OK\r\n\r\n" ) << endl;
    clientConnection->flush();
}

如何发送HTTP 200?

1 个答案:

答案 0 :(得分:1)

当发出newConnection()信号时,必须使用nextPendingConnection()调用从QTcpServer中提取QTcpSocket对象。然后你必须在提取的QTcpSocket对象上调用writeData()。

这里的关键是,侦听套接字(QTcpServer)仅负责每次新客户端连接时创建连接套接字(或QTcpSocket)。 QTcpSocket负责与特定客户的实际通信。

也许你可以更具体地说明哪些不适合你,你尝试了什么?如果你能为我们提供wireshark PCAP,如果某些东西似乎没有按预期工作那么也会很好吗?