|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.07.2013, 16:33 | #1 | |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Свой простейший протокол
Здравствуйте!
Не так давно я написал программу для работы с COM портом. Я научился читать и передавать байты. Где-то (возможно даже не на этом форуме) читал сообщение от raxp примерно с таким содержанием: Цитата:
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
|
05.07.2013, 18:16 | #2 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
смотри ты закончил точкой.
точка - это есть конец сообщения, т.е. минимальный протокол под носом. пробелымеждустрокамиможнотакжеотнес тикпротоколукакразделительпараметро в. в smtp одна точка конец сообщения. .
Не стесняемся, плюсуем!
|
05.07.2013, 18:36 | #3 |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Интересно. То есть мне надо зарезервировать байты на начало и конец информации? Можно, но смысл от них если связаны всего два устройства?
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
05.07.2013, 19:10 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Суть протокола в том, чтобы можно было абсолютно любую информацию подстроить и передать без особых проблем в удобном виде. Ну и контролировать процесс передачи.
Например передача файла: получаем MD5 файла Режем файл на куски по 50 Кб. На принимающий сервер собщаем: Что начинаем передачу файла Имя файла MD5 Кол-во блоков данных По ходу передачи блоков: Сообщаем что продолжаем передавать блок Сообщаем номер блока(его смещения в исходном файле) В случае паузы, вместе с блоком сообщаем что надо встать на паузу и ждать продолжения По окончанию сообщаем что передача завершена. Принимающий сервер, собирает в файл и считает Md5 Если заявленное кол-во блоков равно действительному принятых то файл передан без потерь. Если хэши совпадают, то файл передан и не испорчен. Сообщаем результат что: файл передан Вот примерный протокол передачи данных. Его возможности позволяют принимающей стороне многопоточную загрузку т.е. сервер отдает пакет данных и сообщает его смещение в исходном файле. Ещё можно прикрепить CRC к каждому блоку данных, а по окончанию попросить отдающий сервер отдать блоки X, Y, Z, ... ещё раз. |
05.07.2013, 19:38 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
такой протокол это уже с проверкой на целостность.
простейший просто формирует данные в пакеты -идентификатор начала пакета -длина пакета -данные Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
05.07.2013, 20:09 | #6 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Пепел Феникса, почему-то мне кажется что проверка целостности и корректности передаваемых данных и есть сама суть создания протоколов передачи данных.
|
05.07.2013, 20:13 | #7 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
IP не протокол и тп. это одна из функций лишь, и то опциональная. основная цель протоколов это структуризация. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
05.07.2013, 20:47 | #8 |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Slym, Пепел Феникса и Человек_Борща спасибо!
Если есть ещё соображения на счёт простейшего протокола, прошу высказываться. -==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
05.07.2013, 20:53 | #9 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
Это был наш форум. Протокол придется регистрировать в системе и используя модули Windows, SysUtils, Classes и Messages писать.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
05.07.2013, 21:40 | #10 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Свой протокол | Alex_Gordon | Общие вопросы Delphi | 8 | 07.01.2012 00:13 |
Простейший цикл | _PROGRAMM_ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 9 | 28.12.2011 10:58 |
Простейший код :) | Paramount | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 14.12.2011 22:22 |
Простейший драйвер | zumm | Win Api | 5 | 19.07.2011 05:51 |
Простейший фильтр. | KrPr | БД в Delphi | 3 | 31.08.2010 09:47 |