Главная страница
    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.033 c
3-16077
Леонид
2004-01-10 01:41
2004.02.06
Поиск одинаковых фрагментов текста в БД


14-16624
Andersen
2004-01-14 12:10
2004.02.06
Чудеса да и только


7-16767
Sadya
2003-11-12 17:03
2004.02.06
Как узнать сколько % проца ест один процесс


1-16224
Overstep
2004-01-26 17:37
2004.02.06
Ошибка в проэкте


9-16018
BoGoMoL
2003-07-18 20:46
2004.02.06
Поиск кратчайшего пути





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский