Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Programmer.
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
1

Не знаю как принимать и посилать данные на сервере

29.05.2012, 07:09. Просмотров 1064. Ответов 6
Метки нет (Все метки)

Привет народ

Вот по учобе дошел до QTcpSocket,QTcpServer
клиент написал вроде нормално(я так думаю), но Server не как не осознал как надо. в книгу сразу пример без обяснений(и то очен запутано), помогите написать соответствующий серверный пример.

Client.cpp, компилируется, включается, ощыбок нет.
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void MainWindow::on_pushButton_clicked()
{
    QTcpSocket *client = new QTcpSocket(this);
    QHostAddress host;
    host.setAddress("127.0.0.1");
    char *incomBuf = NULL;
    char *sendData = "Hello world";
    client->connectToHost(host,1000);
     client->open(QIODevice::ReadWrite);
     if(!client->isOpen())
        {
         QMessageBox::information(this,"Server open error","Opening error\n" + client->errorString());
        }
   qint64 ba = client->bytesAvailable();
   QMessageBox::information(this,"Bytes available",QString::number(ba));
   while(incomBuf == NULL)
   {
    client->read(incomBuf,sizeof(char)+1);
   }
    QMessageBox::information(this, "received", (QString)incomBuf);
   client->write(sendData,sizeof(char)+1);
   client->close();
   client->disconnectFromHost();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2012, 07:09
Ответы с готовыми решениями:

Как заставить QTcpSocket принимать данные?
Имеется приложение на Python, которое хотелось бы связать с одним приложением...

Как выводить и принимать данные с usb
как выводить и принимать данные с usb и как это соответствует сигналам на...

Как принимать данные с Bluetooth - устройства?
Здравствуйте. Допустим у меня есть bluetooth USB адаптер, через который у меня...

Как принимать данные по Telnet от сервера?
Здравствуйте. Нужна помощь по нескольким вопросам. 1.Я создаю Telnet Client...

Принимать почту на сервере
Как принимать почту, то есть возможно отправить письмо с яндекс почты на сервер...

6
oxotnik
1626 / 1099 / 75
Регистрация: 21.08.2008
Сообщений: 4,623
Записей в блоге: 1
29.05.2012, 09:03 2
очень хороший и показательный пример в поставке Fortune Client и Fortune Server
и к стати в нем передача данных осуществляется через QDataStream, который серелизует данные, в результате чего отпадает гемор по поводу дальнейшей совместимости данных на разных системах.
3
Programmer.
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
29.05.2012, 17:51  [ТС] 3
oxotnik,
Огромное спасибо за примеров и саветов, но тут много лишнего(АКА мне простой пример надо).

потом сам буду ОБШИРАТЬ...

можно для моего кода показать некий пример? ((
0
Maxim Prishchepa
Эксперт С++
1924 / 1036 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
29.05.2012, 17:57 4

Не по теме:

Programmer., а вы откуда? ну в плане территориально, ну и какой язык у Вас родной? я с каждым постом, все меньше Вас понимаю)))


а вообще я полностью согласен с Охотником, смотрите пример фортуна клиент и фортуна сервер, там всё довольно просто, если что-то не понятно - пишите, постараемся разъяснить...
1
Paporotnik
383 / 227 / 12
Регистрация: 06.07.2011
Сообщений: 512
29.05.2012, 20:12 5
создаешь QTcpServer, настраиваешь его на нужный порт, включаешь прослушку методом listen().
после этого при подключении клиента сервер будет создавать сигнал newConnection(). тебе нужно его поймать слотом и через nextPendingConnection() получить адрес сокета для данного соединения.
после этого на клиентской стороне пишешь в сокет, а на серверной читаешь из сокета и наоборот.
1
Programmer.
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
30.05.2012, 03:07  [ТС] 6
l_a_m,
Спасибо, постараюс понять

Не по теме:

Я Грузин и живу в Грузие. Вот из за етого и пишу так криво... ))



Paporotnik,
Спасибо, но так в книге тоже написано, я не понял серверную часть

Добавлено через 33 минуты
Когда клиент включен, и питаюс с сервера подслушеготь клиента, всегда сообшение выподает, вчем дело?
C++ (Qt)
1
2
3
4
5
6
 QTcpServer *server = new QTcpServer(this);
    server->listen(QHostAddress::Any,1000);
    if(!server->isListening())
      {
        QMessageBox::information(this,"Listen","Listen error");
    }
0
oxotnik
1626 / 1099 / 75
Регистрация: 21.08.2008
Сообщений: 4,623
Записей в блоге: 1
30.05.2012, 08:53 7
посмотри почему не запускается: QTcpServer::errorString()
возможно порт занят
1
30.05.2012, 08:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2012, 08:53

Как принимать данные от внешнего приложения по его запросу
Как ASP.NET позволяет принимать данные от внешнего приложения по его запросу ?...

Как в Java можно принимать и передавать данные на RS-232
Перекопал книгу П.Ноутона и не разобрался как общатся с RS-232, то ли все очень...

как быстро научится передавать и принимать данные с помощью Ajax?
Здравствуйте! Подскажите пожалуйста как быстро научится передавать и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru