![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про Mailslot [D6, WinXP]
Зинец Виктор © (2002-03-26 15:16:00)кто может обьяснить, почему я не могу отправить более 424 байт в слот? делаю так:
MyMailSlot := CreateFile (PChar ("\\" + UserName + "\mailslot\messngr"), GENERIC_WRITE or GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
...
WriteFile (MyMailSlot, Buffer [1], cBuffer, cBytesSend, nil);
cBytesSend показывает, ск. байт записано, но получается сообщение, только если < 425
MSDN пишет, что "If CreateFile specifies a domain or uses the asterisk format to specify the system"s primary domain, the application cannot write more than 400 bytes at a time to the mailslot. If the application attempts to do so, the WriteFile function fails and GetLastError returns ERROR_BAD_NETPATH.", но у меня WriteFile не возвращает ошибки :-(
SV (2002-03-27 21:30:00) [1]В MailSlot Есть ограничение: При передаче сообщ. W98->W98 до 64Kb и соединение не устанавливается, если W_NT->W NT, то есди сообщение > 424 байт, то передается с доставкой соединения, т.о. от NT->W98 или наоборот сообщения должны дыть <424 байт!
Зинец Виктор (2002-03-26 18:01:00) [2]if not WriteFile (MyMailSlot, Buffer [1], cBuffer, cBytesSend, nil) then ShowMessage (format ("Error - %s", [GetLastError]));
после writefile я могу посмотреть на к-во отправленных байт - сколько отправляю, столько cBytesSend и показывает; но если их > 424, то адресату ничего не приходит
Digitman (2002-03-26 17:47:00) [3]А где из приведенного тобой кода видно, что ты контролируешь результат работы WriteFile ?
И если, как ты утверждаешь, WriteFile "не возвращает ошибки", то чему равно значение переменной cBytesSend после возврата из WriteFile ?