Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-1094022761
Chery
2004-09-01 11:12
2004.09.19
Можно ли перевести сервер приложения с Винды на Линукс?


4-1091449532
CAMCOH
2004-08-02 16:25
2004.09.19
Ошибка при создании сервиса


6-1089716484
Djon007
2004-07-13 15:01
2004.09.19
Протокол работи мирка есть,аси есть агде же протокол работи ODIGO


6-1089700591
666
2004-07-13 10:36
2004.09.19
имя компьютера


1-1094122824
sdan
2004-09-02 15:00
2004.09.19
BarCode





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