С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331

Ответ сервера

28.04.2016, 13:19. Показов 1529. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот смотрите, есть TCP клиент и TCP сервер. Клиент стучится, сервер слушает. И вот установлено соединение между клиентом и сервером. И у меня такой вопрос. После того как соединение установлено, сервер может тут же отправить сообщение клиенту или клиент должен быть инициатором - первым отправлять сообщение?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2016, 13:19
Ответы с готовыми решениями:

как считать ответ от сервера???
Вот есть примерчик который отправляет соккет на определённый сервер на 80 порт, ну сервер по идее должен ответить, как теперь считать ответ...

Получить ответ от сервера игры
Здравствуйте, есть игра где пакеты посылаются по протоколу UDP. Мне нужно послать пакет udp, так чтобы пришёл ответ. Если послать обычный...

Boost.Asio. Как получить ответ от сервера в формате json или xml
Все привет, столкнулся с проблемой. Допустим, с помощью boost.asio и OpenSSL я делаю GET запрос сайту, пусть это будет api.vk.com. С...

9
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
28.04.2016, 13:56
Цитата Сообщение от yura91 Посмотреть сообщение
После того как соединение установлено, сервер может тут же отправить сообщение клиенту или клиент должен быть инициатором - первым отправлять сообщение?
все зависит от вас. как вы протокол реализовали так и будет работать
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
28.04.2016, 14:38  [ТС]
Ну например, я же могу прослушать соединение при помощи listen дальше сделать accept, ну а потом сразу вызвать на сервере send() и отправить на клиент сообщение можно же?

Добавлено через 52 секунды
После установления соединения связь сразу же становится двусторонней(то есть пакеты могут идти сразу как и от сервера так и от клиента) так? Но инициирует соединение клиент в TCP все верно?
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
28.04.2016, 14:44
Цитата Сообщение от yura91 Посмотреть сообщение
сделать accept, ну а потом сразу вызвать на сервере send() и отправить на клиент сообщение можно же?
да, если ваш протокол подразумевает прилет данных с сервера сразу после установления соединения это можно
Цитата Сообщение от yura91 Посмотреть сообщение
После установления соединения связь сразу же становится двусторонней
да
Цитата Сообщение от yura91 Посмотреть сообщение
Но инициирует соединение клиент в TCP все верно?
*задумчиво* а как вы хотели что бы сервер подключился к клиенту)?
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
28.04.2016, 15:05  [ТС]
да, если ваш протокол подразумевает прилет данных с сервера сразу после установления соединения это можно
Протокол здесь один - TCP. Вы имеете ввиду то, что по поводу отправки сообщений - можно как угодно это уже я проектирую свою задачу и решаю кто первый будет отправлять сообщение так?
*задумчиво* а как вы хотели что бы сервер подключился к клиенту)?
Но бывают же разные модели протокол TCP это модель клиент - сервер, но есть же модели сервер - сервер, сервер - клиент, как они тогда реализуются если клиент всегда подключается к серверу? Через посредника какого нибудь или как?

Добавлено через 50 секунд
То есть сервер может быть сервером для одной программы, но клиентом для другой? Как то так чтоли?

Добавлено через 10 минут
Просто у меня есть TCP сервер на нем есть UI. За сервером сидит оператор и вводит команды для клиента. Вот я и спрашиваю можно ли подключится с клиента к этому серверу и потом когда оператор ввел какие то команды( проверять есть ли команды для клиента) то выслать код этих команд клиенту, на клиенте сделать задачу и отправить ответ серверу. Так можно? То есть после подключения клиент сразу начинает слушать ответы вот.
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
28.04.2016, 15:21
Цитата Сообщение от yura91 Посмотреть сообщение
Протокол здесь один - TCP. Вы имеете ввиду то, что по поводу отправки сообщений - можно как угодно это уже я проектирую свою задачу и решаю кто первый будет отправлять сообщение так?
я имел ввиду ваш протокол - то есть тот поток данных которые вы шлете и разбираете на обоих сторонах
Цитата Сообщение от yura91 Посмотреть сообщение
Но бывают же разные модели протокол TCP это модель клиент - сервер, но есть же модели сервер - сервер, сервер - клиент, как они тогда реализуются если клиент всегда подключается к серверу? Через посредника какого нибудь или как?
если честно не совсем вас понял. сервер это часть выполняющая некоторые функции (осуществляющая сервис) в интересах и по запросу клиента (другой программы). если разделение обязанностей между участниками обмена данными не так очевидно, то легче считать сервером ту часть которая осуществляет прием подключений ибо она хотя бы в этом вопросе действительно является сервером - она выдает каналы данных желающим с ней общаться программам
Цитата Сообщение от yura91 Посмотреть сообщение
То есть сервер может быть сервером для одной программы, но клиентом для другой? Как то так чтоли?
в нашем мире возможно все. я думаю будет легче выработать понимание вопроса если сформулировать задачу
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
29.04.2016, 19:54  [ТС]
Просто смотрите у меня есть клиент и сервер TCP которые связываются при помощи сокетов. Сервер написан на Qt. И я хочу сразу после установления соединения отправить с сервера на клиент сообщение таким образом
Код сервера
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
void Server::startRead()
{
QTcpSocket *clientSocket = (QTcpSocket*)sender();
QByteArray bytes;
 QByteArray bytes1;
 
 //bytes = clientSocket->readAll();  //      если это откоментировать работает норм. А так первое сообщение на клиент не идет.
clientSocket->write("Yes excellent connection");
 
clientSocket->disconnectFromHost();
}
Но это почему то не работает. А работает только если сначала клиент отправит серверу сообщение, а потом только сервер(как бы в ответ). Не подскажете почему это не работает? Как исправить код? Как нужно реализовывать(писать код на сервере), чтобы сообщения отправлялись на клиент сразу после установления соединения?

Добавлено через 1 минуту
Поток данных здесь обычное текстовое сообщение
0
Модератор
 Аватар для vxg
3407 / 2178 / 354
Регистрация: 13.01.2012
Сообщений: 8,448
29.04.2016, 19:58
Я не знаю как работают классы в qt но название обработчика startread наводит меня на мысль что эта функция вызывается не при подключении клиента а при получении от него данных поэтому предлагаю вам ещё раз посмотреть справку по используемым классам
0
3 / 27 / 2
Регистрация: 23.10.2013
Сообщений: 2,331
29.04.2016, 20:58  [ТС]
Да спасибо теперь все работает
1
50 / 49 / 10
Регистрация: 24.01.2010
Сообщений: 225
30.04.2016, 22:41
Цитата Сообщение от yura91 Посмотреть сообщение
протокол TCP это модель клиент - сервер, но есть же модели сервер - сервер, сервер - клиент, как они тогда реализуются если клиент всегда подключается к серверу
по определению:
сервер тот кто предоставляет свои ресурсы. клиент - тот кто использует эти ресурсы. всё остальное - маркетинг и к технологии КС не имеет ни какого отношения.

любая программа может выступать в роли клиента и(или) сервера.

удачи вам
(круглый)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.04.2016, 22:41
Помогаю со студенческими работами здесь

IRC бот, ответ сервера: "Couldn't resolve your hostname"
Создаю socket конекчусь все нормально отправляю "NICK JohnConnor" "USER Eboj localhost * :Eboj" ну а сервак в ответ Я написал...

Сырые сокеты: написание промежуточного сервера, через которого подключены клиенты и сервера клиентов
Доброго времени суток! Мне нужно сделать промежуточный сервер через которого подключены клиенты и сервера клиентов. Промежуточный сервер...

Indy: программа не получает правильный ответ от сервера, но сниффер показывает правильный ответ
Всем привет. Моя программа должна сделать гет запрос на определенный сайт. Я включаю программу и снифферю. В сниффере показывается...

Ответ сервера
Приветствую Всех. У меня вот такой вопрос. Получаю ответ от сервера вот таким форматом ac ‹ ЊђЛѓ Dчэ ТЅЏ Как...

Ответ от сервера
Ребята подскажите, пожалуйста. Сделал сервер, ответ от него посылаю в таком в виде: ServerSocket1.Socket.Connections.SendText('hello...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru