Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

Посоветуйте, пожалуйста, методику передачи данных...   Найти похожие ветки 

 
Makhanev A.S.   (2003-12-01 19:06) [0]

Есть тривиальная задача передачи данных между Клиентами - с одной стороны и Сервером - с другой.
Сервер должен уметь одновременно обработать ВСЕ запросы Клиентов.
Вопрос: что будет с обработчиком ServerSocket.ClientRead, если на сервер посылаются данные от 2-х и более клиентов? Всегда ли сгенерируется OnClientRead - или он иногда будет прерываться (если во время обработки придёт очередной пакет)?

Как можно урегулировать следующую ситуацию:

в клиенте:
SendText("123");
SendText("456");

у сервера:
ReceiveText = "123456" - а хочется "123" и "456".

Дело в том, что после прочтения справки (и интернет статей) на тему ClientType, ServerType, TWinSocketStream и TServerClientThread в голове одна каша:(


 
panov   (2003-12-01 19:45) [1]

На клиенте -
SendText("123"+#13+#10);
SendText("456"+#13+#10);

На сервере разбираем этот текст.


 
Makhanev A.S.   (2003-12-01 20:01) [2]


> panov © (01.12.03 19:45) [1]

Это я понимаю.
SendText - общий случай.
В приложении же будет SendStream либо SendBuf...
Постоянный парсинг несколько проблемное решение... - хотя вставлять свой разделительный символ - тоже решение:)
Спасибо!


 
panov   (2003-12-01 20:05) [3]

>Makhanev A.S. © (01.12.03 20:01) [2]

Для текста именно такое решение - символы-разделитель.
Для двоичных данных определяется структура(как один из методов), для которой в первых позициях передается длина передаваемых данных.
Можно и совместить эти два варианта, и не различать текстовые и двоичные данные.


 
Makhanev A.S.   (2003-12-01 20:32) [4]


> Для двоичных данных определяется структура(как один из методов),
> для которой в первых позициях передается длина передаваемых
> данных.
> Можно и совместить эти два варианта, и не различать текстовые
> и двоичные данные.


К этому я как-раз и пришёл - передавать в первых n байтах длину потока, но боялся изобрести велосипед.

А какие есть другие методы?

Буду очень благодарен за полезную информацию.


 
panov   (2003-12-01 20:59) [5]

еще вариант - передаются данные всегда фиксированной длины(структура), но это уже сложнее протокол.


 
Makhanev A.S.   (2003-12-02 00:10) [6]


> panov © (01.12.03 20:59) [5]

Скажите подалуйста,
какие книжки по теме практического применения сокетов существуют?
А также практика по программированию TCP\IP.

Мне очень захотелось иметь "Эффективное программирование TCP\IP." - но, к сожалению её нет в продаже:(


 
Polevi   (2003-12-02 10:31) [7]

>panov © (01.12.03 20:59) [5]
для таких целей не глупые люди придумали XML

>Makhanev A.S. © (02.12.03 00:10) [6]
http://inex.kiev.ua/a.cgi?gid=31&t=_blank&id=38668428&type=iframe


 
Polevi   (2003-12-02 10:35) [8]

>Makhanev A.S. © (02.12.03 00:10) [6]
Э. Джонс Д. Оланд
Программирование в сетях Microsoft Windows


 
panov   (2003-12-02 11:13) [9]

для таких целей не глупые люди придумали XML

Наверное... не занимался XML.
А что, XML не надо реализовывать?


 
Polevi   (2003-12-02 11:32) [10]

>panov © (02.12.03 11:13) [9]
существует огромное кол-во парсеров, например MSXML


 
panov   (2003-12-02 12:06) [11]

>Polevi © (02.12.03 11:32) [10]

В частном случае подойдет, может быть, такой вариант.
В общем, конечно, нет...

Но решение автору топика готовое есть - XML-)


 
Makhanev A.S.   (2003-12-02 22:07) [12]


> Polevi © (02.12.03 10:31) [7]
> http://inex.kiev.ua/a.cgi?gid=31&t=_blank&id=38668428&type=iframe


Линк не грузится, там точно "Эффективное программирование TCP\IP" есть?


 
Polevi   (2003-12-03 13:43) [13]

>Makhanev A.S. © (02.12.03 22:07) [12]
нет, купи себе >Polevi © (02.12.03 10:35) [8]


 
Makhanev A.S.   (2003-12-03 23:38) [14]


> Polevi © (03.12.03 13:43) [13]

Ок, всем спасибо.
Пока что тесты проходят успешно.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.284 c
14-16651
RealRascal
2004-01-13 23:07
2004.02.06
Привлечение внимания к окну, когда активно другое приложение


3-16157
Layner
2004-01-14 09:53
2004.02.06
Знатоки, как определить, какая версия ADO стоит на машине юзера?


1-16393
Mr. Chel
2004-01-23 13:19
2004.02.06
DBGrid vs InplaceEditor


1-16239
Akni
2004-01-26 14:02
2004.02.06
TFileStream


3-16091
quik
2004-01-11 12:49
2004.02.06
dbase





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский