|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вопрос по tcp =(((
вот такая проблема.делал клиент и сервер на tcp компанентах(на каких не важно дело не в этом)
суть в том я даж не знаю как обьяснить.вот простой пример На клеенте: edit1 edit2 button1 button2 На Сервере Label1 Label2 при нажатии на button1 текст из editt1(в клиенте) отправлялся на сервер "Именно В label 1 ", Анналогично при нажатии на button1 текст из edit2 отправлялся на сервер иненно в label2. я не пойму именно распределение.как заставить что бы сервер понимал что входящий текст от клеента из первого едета должен отображатся в первом лэйболе а текст со второго эдита должен во втором лэйболе( |
#2
|
||||
|
||||
т.к. делать для этого 2 соединения не логично (Label1 - Edit1 и Label2 - Edit2), стоит задуматься над расширением протокола для передачи по одному соединению, к примеру добавить заголовок, в котором бы указывался объект назначения Edit1 или Edit2.
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
2 соединения я знаю что не логично вот и спрашивую принцеп этого расширения про протоколу=))
а как добавить зоголовок?где можно об этом подробно почитать?если кто знает есть ли примеры? (если вопросы глупые не ругайтесь я только учусь) |
#4
|
|||
|
|||
Мне казалось, что http это протокол, а в tcp/ip каждый пишет, что хочет,т.е. создаёт свой собственный, поэтому советую почитать про http.
В http параметры передаются через Get-запрос. Или передаётся значение компонентов формы (Post-запрос). Когда вы изучаете протоколы/интерфейсы, вы должны знать, что есть несколько уровней: физический (1), транспортный (2) ... уровень приложений (7). Возьмём, напр., СAN. Он формально описан на 1 и 2 уровнях и всё, что нам известно, это что есть текст сообщения и идентификатор. А на 7-м уровне появляются реальные правила-протоколы: DeviceNet, CANOpen. Так и у вас: tcp/ip это более низкий уровень по сравнению с http. Последний раз редактировалось AlexSku, 06.03.2012 в 13:59. |
#5
|
||||
|
||||
самое простое, но вполне работоспособное это перед текстом передать символ "1" или "2" (добавить в начало текста), в зависимости из какого Edit текст. на сервере проверять первый символ - он будет "1" или "2" и в зависимости от этого помещать весь остальной принятый текст в Label1 или Label2, естественно без первого символа.
Пишу программы за еду. __________________ |
#6
|
|||
|
|||
Цитата:
а это идея...но если передавать файлы(по похожему принцепу только (txt ->memo1, jpeg ->ImageList ) такое не прокатит по tcp вроде же тоже файлы передавать можно.. P.S. или же если перед передачей файла с клиента на сервер отправляется текст на сервер с символом 1 который переводит сервер к примеру к приему картинки в ImageList если это картинка или же с цифрой 2 если это txt для перевода в memo, далее сервер отправляет команду к клиенту что сервер переведен к приему txt или картинки и начинается передача. или это слишком намудрено? |
#7
|
|||
|
|||
Цитата:
я конечно почитаю об этом но поже , как вы сказали tcp/ip это более низкий уровень но т.к я только учусь для меня пока что это нормальное)в школе же не учат умножения если не знаеш как складывать) |
#8
|
||||
|
||||
ну а кто нам запрещает расширить заголовок и передавать не только тип (ну или кому они адресованы в предыдущем варианте), но и размер данных: тип сообщает серверу что делать с данными (text, jpeg и т.д.), а размер данных собственно для контроля окончания блока даных при приеме их сервером. но тут (при достаточно больших объемах) могут возникнуть проблемы с мультиплексированием данных (на одном соединении) когда сервер одновременно принимает данные нескольких типов - пакеты могут перемешаться. в принципе клиенту можно не давать такую возможность.
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
gost_five (06.03.2012)
|