我设置了一个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?
答案 0 :(得分:1)
当发出newConnection()信号时,必须使用nextPendingConnection()调用从QTcpServer中提取QTcpSocket对象。然后你必须在提取的QTcpSocket对象上调用writeData()。
这里的关键是,侦听套接字(QTcpServer)仅负责每次新客户端连接时创建连接套接字(或QTcpSocket)。 QTcpSocket负责与特定客户的实际通信。
也许你可以更具体地说明哪些不适合你,你尝试了什么?如果你能为我们提供wireshark PCAP,如果某些东西似乎没有按预期工作那么也会很好吗?