![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ограничение получаемой информации через Сокеты [D6, Win2k]
Sam05 © (2005-09-26 10:43:00)Доброе время суток. Вот у меня такой вопрос
Ситуация:
отправляю клиентом в цикле ячейки таблицы, командой
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 тоже весь размер переданных данных.
Подскажите как получать переданную информацию кусками, причем длина переданного в очередной раз куска может быть разной, а топерерыл весь инет ничего там нет по этому поводу
Заренее благодарен
atruhin (2005-09-26 14:53:00) [1]В TCP/IP нельзя, он передает только поток данных.
В UDP можно, но не гарантированна доставка.
отправляй первым байтом пакета длинну твоей ячейки. (например)
Reindeer Moss Eater (2005-09-26 14:46:00) [2]Еще раз для упорных:
Тебе нужен протокол или соглашение о том, как ты передаешь и принимаешь данные.
И вот когда он у тебя будет, то ты сможешь передавать/принимать данные так, как тебе хочется.
Sam05 (2005-09-26 14:42:00) [3]А не льзя ли просто отправить например 10 символов, и их принять не зная сколько отправил, или обязательно нужно раз отправил 10 то и принял то, потом отправил 15 то и принял 15, а я хочу отправлять порциями и принимать порциями, не всю кучу сразу
Reindeer Moss Eater (2005-09-26 14:17:00) [4]Или мне нужно передавать форматированную страку типа "Данные;Даннны;Даннны;"
Это называется "принять соглашение об обмене данными".
Протокол иными словами.
Принять и следовать ему.
Sam05 (2005-09-26 14:06:00) [5]ячейки таблицы, а не протокола, просто я хочу передать и принять каждую ячейку таблицы отдельно, т.е в цикле. Или мне нужно передавать форматированную страку типа "Данные;Даннны;Даннны;"
Digitman (2005-09-26 11:54:00) [6]
> в buf почему то помещается только первая ячейка
какие такие "ячейки" в стриме ?
нет в TCP/IP никаких "ячеек".
Reindeer Moss Eater (2005-09-26 11:44:00) [7]Подскажите как получать переданную информацию кусками
Ты её и так получаешь кусками. А что бы не запутаться в принятых данных надо придумать протокол и следовать ему на приемном и передающем концах.