![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Передача динамического массива через Сокеты. Пример.... [D5, D6, NT4]
Abzetdin © (2001-11-19 19:36:00)Существует ли ограничение относительно размера данных динамического массива передаваемых за один раз через стандартный сокет.
Дело в том, что независимо от сумарного размера передаваемых данных, принимаемые не превышают 8192 byte.
Т.е. если даже TotalBytesSend > 8192, то TotalBytesReceive всегда равна 8192
TotalBytesSend:= ServerSocket1.Socket.Connections[0].SendBuf(SendMatrix^, BufSize);
TotalBytesReceived:= Socket.ReceiveLength;
Socket.ReceiveBuf(SendMatrix^, BufSize);
В чём тут дело? Или существует ли свойство регулирующее размер буфера сокета?
Заранее спасибо.
Abzetdin (2001-11-19 21:39:00) [1]Огромное спасибо, буду искать соответствующее свойство.
panov (2001-11-19 20:45:00) [2]На приемном конце данные приходят не одним пакетом, а также разбитые на на те же самые пакеты длиной 8192.
Т.е., если при посылке не приходится беспокоиться о разбивке данных, то при приеме каждую порцию нужно обрабатывать отдельно.
Abzetdin (2001-11-19 20:32:00) [3]Спасибо, ну это понятно, а чем объяснить то что общтй размер принятых данных никак не не превышает 8192 байт. Напомню, что я передаю динамический массив. Код примера приведен в моем предыдущем вопросе.
panov (2001-11-19 20:26:00) [4]socket сам делит поток данных на пакеты, размер которых установлен в реестре.
К сожалению, название параметра не помню.