Форум: "Сети";
Текущий архив: 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