Нужно с PHP передать на серверное приложение данные по SSL, дождаться ответных данных и вывести их на экран.
Написал такой код на PHP:
<br>
<?php<br>
error_reporting(E_ALL);<br>
<br>
$fp = fsockopen("ssl://localhost", 6000);<br>
<br>
$send = "hello";<br>
<br>
fputs($fp, $send);<br>
$html = fread($fp, 1000000);<br>
fclose($fp);<br>
<br>
echo "<pre>".$html."</pre>";<br>
?><br>
И функция приема сообщения на QT4
<br>
void CConnThread::slotReadyRead()<br>
{<br>
//Создать поток данных.<br>
QDataStream in(sslSocket);<br>
in.setVersion(QDataStream::Qt_4_4);<br>
<br>
//Если пришла первая часть из посланной клиентом информации.<br>
if(blockSize == 0)<br>
{<br>
cout << "data transfer from client" << endl;<br>
//Если первая часть меньше того кол-ва информации что определяет размер всего сообщения...<br>
if(sslSocket->bytesAvailable() < (int)sizeof(qint64)) return;<br>
<br>
//Получить размер посылаемого клиентом сообщения.<br>
in >> blockSize;<br>
}<br>
<br>
//Если последующие части вместе взятые меньше, чем определенное клиентом кол-во...<br>
if(sslSocket->bytesAvailable() < blockSize) return;<br>
<br>
//Обнулить параметр размера посылаемого клиентом сообщения.<br>
blockSize = 0;<br>
<br>
//Получить строку сетевого сообщения.<br>
QString message; in >> message;<br>
<br>
//Далее... творим ;)<br>
<br>
cout << message.toAscii().data() << endl;<br>
<br>
this->sendMessage("received!");<br>
}<br>
<br>
void CConnThread::sendMessage(QString message)<br>
{<br>
QByteArray block;<br>
QDataStream out(&block, QIODevice::WriteOnly);<br>
out.setVersion(QDataStream::Qt_4_4);<br>
out << (qint64)0;<br>
out << message;<br>
out.device()->seek(0);<br>
out << (qint64)(block.size() - sizeof(qint64));<br>
sslSocket->write(block);<br>
}<br>
Но вот проблема — данные приходят (о чем свидетельствует вывод строки data transfer from client), но не выводятся на экран. Сам же ПХП-скрипт подвисает после отправки (ждет ответа, но не получает его). Что я сделал не так?