Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Вниз

Ограничение получаемой информации через Сокеты   Найти похожие ветки 

 
Sam05   (2005-09-26 10:43) [0]

Доброе время суток. Вот у меня такой вопрос
Ситуация:
отправляю клиентом в цикле ячейки таблицы, командой
k:=ClientSocket1.Socket.SendBuf(s^,Length(st)+1);
где st: string, s:PChar;

на серверной части организую цикл, по количеству строк и столбцов (из тоже передаю и получаю, с ними все нормально)
При первом же
Tem:=socket.ReceiveLength;
GetMem(buf, Tem);
Tem1:=socket.ReceiveBuf(Buf^,Tem);

в Tem у меня весь так сказать размер переданных данных, а вот в buf почему то помещается только первая ячейка причем в Tem1 тоже весь размер переданных данных.

Подскажите как получать переданную информацию кусками, причем длина переданного в очередной раз куска может быть разной, а топерерыл весь инет ничего там нет по этому поводу
Заренее благодарен


 
Reindeer Moss Eater ©   (2005-09-26 11:44) [1]

Подскажите как получать переданную информацию кусками

Ты её и так получаешь кусками. А что бы не запутаться в принятых данных надо придумать протокол и следовать ему на приемном и передающем концах.


 
Digitman ©   (2005-09-26 11:54) [2]


> в buf почему то помещается только первая ячейка


какие такие "ячейки" в стриме ?
нет в TCP/IP никаких "ячеек".


 
Sam05   (2005-09-26 14:06) [3]

ячейки таблицы, а не протокола, просто я хочу передать и принять каждую ячейку таблицы отдельно, т.е в цикле. Или мне  нужно передавать форматированную страку типа "Данные;Даннны;Даннны;"


 
Reindeer Moss Eater ©   (2005-09-26 14:17) [4]

Или мне  нужно передавать форматированную страку типа "Данные;Даннны;Даннны;"

Это называется "принять соглашение об обмене данными".
Протокол иными словами.

Принять и следовать ему.


 
Sam05   (2005-09-26 14:42) [5]

А не льзя ли просто отправить например 10 символов, и их принять не зная сколько отправил, или обязательно нужно раз отправил 10 то и принял то, потом отправил 15 то и принял 15, а я хочу отправлять порциями и принимать порциями, не всю кучу сразу


 
Reindeer Moss Eater ©   (2005-09-26 14:46) [6]

Еще раз для упорных:
Тебе нужен протокол или соглашение о том, как ты передаешь и принимаешь данные.
И вот когда он у тебя будет, то ты сможешь передавать/принимать  данные так, как тебе хочется.


 
atruhin ©   (2005-09-26 14:53) [7]

В TCP/IP нельзя, он передает только поток данных.
В UDP можно, но не гарантированна доставка.
отправляй первым байтом пакета длинну твоей ячейки. (например)



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
2-1135237508
kyn66
2005-12-22 10:45
2006.01.08
RoundTo работает неверно?


2-1135016134
Viktop
2005-12-19 21:15
2006.01.08
Разбить текстовый файл


1-1133898010
Rem
2005-12-06 22:40
2006.01.08
EOleException и сообщение об исключительной ситуации


14-1134555913
dr Tr0jan
2005-12-14 13:25
2006.01.08
Очень нужна книжка


8-1122551843
BFG9k
2005-07-28 15:57
2006.01.08
Масштабирование роликом мыши





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