![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Пакеты UDP в TNMUDP [D5, Win95/98, Win2k]
grvakh © (2004-04-16 10:42:00)При превышении пакетом на отправляющей стороне размера 2048 на принимающей сторне в поле NumberBytes процедуры события DataReceived получается значение -1.
Можно ли с этим бороться? Без перехода на др. версии и др компоненты? И вообще - с чем это связано?
Verg (2004-04-16 10:57:00) [1]
> И вообще - с чем это связано?
С размером буфера у самой компоненты при приеме из сокета.
var buffer : array[0..2047] of byte;
result := recv(UDPSocket, buffer, sizeof(buffer), 0);
если в сокете сидит датаграмма размером больше, чем sizeof(buffer), то Recv вернет SOCKET_ERROR (-1), при этом WSAGetLastError вернет WSAEMSGSIZE. Кстати, при этом первые sizeof(buffer) байт из той длинной датаграммы таки будут скопированы в buffer.
Вот и все.
Размер приемного буфера у этой компоненты по-моему не регулируется.