Форум: "Потрепаться";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Внизкак известно сокеты склеивают сообщения если выполнить Найти похожие ветки
← →
Гость (2004-09-01 15:48) [0]код :
ClientScoket.Socket.SendText("Hello!");
ClientScoket.Socket.SendText("User!");
то
ServerSocket.Socket.ReceiveText будет "Hello!User!";
Кто предложит алгоритм что-бы избежать склевания?
← →
Reindeer Moss Eater © (2004-09-01 15:55) [1]Алгоритм:
Не бояться склеивания, ибо нет никакого "склеивания".
← →
Digitman © (2004-09-01 15:58) [2]
> как известно сокеты склеивают сообщения
это известно только тебе, никому более не приходила мысль ассоциировать конкретный используемый поточный транспортный протокол с "сокетом" как таковым
← →
Kurtevich © (2004-09-01 16:06) [3]отправляй сообщения с интервалом времени >8 мсек. может поможет. заодно можно побаловаться с SND_BUFFER.
← →
Гость (2004-09-01 16:17) [4]Reindeer Moss Eater © (01.09.04 15:55) [1]
Неправда !
на код:
for i:=1 to 10 do
ClientSocket.SendText("Hello!");
На сервер в он клиент реад Socket.ReceiveText ="Hello!Hello!Hello! и тд.
что сделать чтобы избежать этого даже если сеть сильно загружена
← →
cyborg © (2004-09-01 16:37) [5]http://delphibase.endimus.ru/?action=viewtopic&topic=nettransfer
Первая моя была, но после меня примеры получше написали.
← →
Суслик © (2004-09-01 16:41) [6]описать протокол обмена данными таким образом, чтобы принимающая сторона понимала, какие исходные фрагменты были посланы.
← →
VID © (2004-09-01 18:57) [7]Гость (01.09.04 15:48)
cyborg тебе ответил. там ещё мой вариант есть, выбирай что по душе.
← →
VID © (2004-09-01 18:58) [8]Kurtevich © (01.09.04 16:06) [3]
а ты тот ещё извращенец....
← →
Reindeer Moss Eater © (2004-09-01 19:20) [9]На сервер в он клиент реад Socket.ReceiveText ="Hello!Hello!Hello! и тд.
что сделать чтобы избежать этого даже если сеть сильно загружена
Избежать чего?
Полного приема информации переданной второй стороной или чего?
← →
Reindeer Moss Eater © (2004-09-01 19:22) [10]как известно сокеты склеивают сообщения если выполнить
Как известно во всех языках мира отдельные слова разделяются пробелами для того что бы не "склеивались" при чтении книг и статей.
← →
VID © (2004-09-01 20:13) [11]Смотрите леденящий кровь фильм ужасов!
Ночной кошмар начинающих программеров!
Л И П К И Й
С О К Е Т
во всех кинотеатрах страны.
...coming soon...
← →
iZEN © (2004-09-01 20:34) [12]to Гость (01.09.04 15:48)
flush-а для дельфового сокета нет что-ли?
← →
Fay © (2004-09-01 21:05) [13]"дельфовый сокет" - это хто?
← →
vuk © (2004-09-01 21:16) [14]Вообще говоря, TCP - потоковый протокол, т.е. такая склейка возможна. Возможна также и "нарезка" больших блоков данных на фрагменты, чтобы в TCP пакет влезали. Ничего страшного в этом нет. Если нужна отдельная обработка строк, разделяйте их символами перевода строки. Естественно, на обратной стороне нужно разбирать приходящие данные и разделять строки.
← →
STYLE © (2004-09-01 21:34) [15]В HTTP протоколе к примеру после заголовка сразу следуют 3 байта - размер следующего пакета и #13#10 - разделитель, затем сама информация, и там уже не важно как будет резать или склеивать Socket переданную информацию. Главное считать указанное после заголовка количество байт.. Соотвественно если Если пакет не приходит N-ное количество времени, то связь нарушена.
← →
iZEN © (2004-09-01 22:08) [16]/**Fay © (01.09.04 21:05) [13]
"дельфовый сокет" - это хто?
*/
Это такая ОО-программная оболочка над WinSock, написанная умельцами из Borland на языке Delphi (бывш. Object Pascal).
to vuk © (01.09.04 21:16) [14].
Согласен.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.029 c