2011-04-14 2 views
1

Shoutcast 스트림을 수신하도록 QTcpServer를 설정합니다. newConnection() - 신호는 다음과 같이 실행됩니다.QTcpServer : 연결된 클라이언트에게 HTTP/1.0 200 OK 전송

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

newConnection() 신호가 발생할 때 nextPendingConnection() 호출로 QTcpServer에서 QTcpSocket 객체를 추출해야합니다. 그런 다음 압축을 푼 QTcpSocket 객체에서 writeData()를 호출해야합니다.

청취 소켓 (QTcpServer)은 새 클라이언트가 연결될 때마다 연결 소켓 (또는 QTcpSocket)을 생성하는 역할 만합니다. 그리고 QTcpSocket은 특정 클라이언트와의 실제 통신을 담당합니다.

어쩌면 당신은 정확하게 당신을 위해 작동하지 않는 무엇을 당신이 시도했는지 더 구체적 수 있습니다? 예상대로 작동하지 않는 경우 wireshark PCAP를 제공 할 수 있다면 좋을 것입니다.

+0

감사합니다. 이제 작동하고, 줄 바꿈 사이의 공백을 제거해야했습니다. – Hedge

관련 문제