- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, возникла такая ситуация.
Есть некое приложение, которое общается по протоколу TCP(запрос - ответ), но иногда, скажем, раз в 5 минут, сервер сам выступает инициализатором и отсылает мне порцию данных(события).
Может быть такая ситуация, что я отправив порцию своих данных(на которые я хочу получить ответ), получу в ответ данные, которые отправил сервер(события), а не должный ответ ?
спасибо!
Конечно может, т.к. TCP гарантирует только порядок и целостность поступления пакета, т.е. на более низком уровне. К примеру, размер передаваемого сообщения 15 килобайт, сеть режет это на 10 пакетов по 1,5 килобайта и они придут в том порядке и соберутся так, чтобы для получателя пришёл именно такой блок данных в 15 килобайт. В случае UDP, к примеру, куски по 1,5 килобайта могут приходить в случайном порядке и даже вообще не дойти.
Может только в том случае, если сервер писал крайне странный программист, так как в норме такого быть не может. Есть TCP сессия, и данные между сессиями путаться не могут. Вы инициируете одну сессию, сервер другую, и данные путаться между сессиями не могут. Вот если бы это был протокол UDP - тогда возможно что угодно.
Если сервер отвечает клиенту и сервер отправляет клиенту периодическую информацию по одному соединению, то может.
Решение -- вместе с пакетом передавать тип сообщения (ответ или информация) и обрабатывать должным образом.
Да, соединение одно. Но я все понял, спасибо!
Вы пишите свой TCP/IP сервер?
Я писал демон для чата на С++.
После установки TCP соединения, есть 2 встречных потока данных.
1) От клиента к серверу
2) От сервера к клиенту.
В TCP нет разделителей между отдельными блоками данных идущих в каждом направлении.
Разделять данные на блоки и заботится о том, что бы в ответ на запрос приходил ответ на него, а не что то другое это уже функция приложений верхнего уровня.
Для упрощения делают обычно так.
Клиент отправляет запрос на сервер и ждет ответа на него.
Сервер по своей инициативе обычно может послать лишь пакет FIN – завершение соединения.