У тебя в out был буфер, а не сокет, по этому видимо и не отправляло.
Ну я уже это понял)))
Если не понятно, вот фрагменты ресивера на сервере, сендер на клиенте и функция типа QString:
Ресивер на серве:
C++ (Qt)
void ClientSocket::readClient()
{
QDataStream in( this );
QDataStream out( this );
in.setVersion(QDataStream::Qt_4_5);
in >> strA;
QMessageBox::information(NULL, "Принятые данные", strA, 0, 0);
strA = QInputDialog::getText(NULL, "Отправить", "Введите мессагу");
out << strA;
this->write(strA.toAscii());
this->flush();
}
фрагмент сендера на клиенте:
C++ (Qt)
void MainWindow::getDataStream()
{
QDataStream in(&socket);
QDataStream out(&socket);
in.setVersion(QDataStream::Qt_4_6);
in >> strB;
switch(strB.toInt()){
case 0: out << openCloseCd(); break;
case 1: out << setScreenSize(); break;
case 2: out << setGetFileFromFtp(); break;
case 3: out << msgInputOutputDialog(); break;
default: MessageBox(NULL, "Error!!!!", "Error!!!!!", 0);
}
}
а вот функция типа QString:
C++ (Qt)
QString MainWindow::openCloseCd()
{
mciSendString("Set CDAudio Door Open", 0, 0, 0);
return "Complete";
}
Я пробовал сделать переменную QString strA; потом присвоить strA = "Complete"; и отправлять так return strA; Но все равно на сервер приходит сообщение, которое выводится QMessageBox'ом как пустое.
Хмм... видимо проблема в потери пакетов, или что-то подобное. Я стал тестить. На первый запрос приходит пустое сообщение, на второе когда приходит Complete, а когда клиент падает. О_о ваще не пойму ничего
Правильного вывода добился, осталось отладить клиент, но это уже оффтоп
и клиент уже отладил
Сносите тему, админы