Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
1-16315
Constant
2004-01-25 14:54
2004.02.06
Инкапсуляция


6-16551
V.exeR
2003-12-02 06:53
2004.02.06
Плагин для Miranda


7-16769
Prof
2003-11-18 09:37
2004.02.06
Соединение по модему.


1-16341
Юрий Ж.
2004-01-24 19:08
2004.02.06
Как получить доступ к БИТАМ?


3-16099
Skipidar
2004-01-10 05:51
2004.02.06
Запись файла в поле типа Image