![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Named pipes [D7, WinXP]
Marco © (2003-12-26 22:33:00)
Уважаемые Мастера!
Помогите разрешить проблему. Необходимо реализовать раюоту 2 приложений (клиент-сервер) через именованный канал.
Pipe создается с такими параметрами:
hPipeHandle:= CreateNamedPipe(
PChar(sPipeName), // pointer to pipe name
PIPE_ACCESS_DUPLEX or FILE_FLAG_OVERLAPPED,// pipe open mode
PIPE_TYPE_BYTE or PIPE_NOWAIT,// pipe-specific modes
PIPE_UNLIMITED_INSTANCES, // maximum number of instances
1024, // output buffer size, in bytes
1024, // input buffer size, in bytes
NMPWAIT_USE_DEFAULT_WAIT, // time-out time, in milliseconds
@rSecurityAttributes // pointer to security attributes structure
);
Клиент подключается со следующими параметрами:
hPipeHandle:= CreateFile(
PChar(sPipeName), // pipe name
GENERIC_READ or GENERIC_WRITE, // read and write access
0, // no sharing
nil, // no security attributes
OPEN_EXISTING, // opens existing pipe
0, // default attributes
0 // no template file
);
После запуска
TransactNamedPipe(
hPipeHandle,
pBufIN,
SizeOf(pBufIN^),
pBufOUT,
SizeOf(pBufOUT^),
nBytesRead,
@rOverLapped
);
выдается сообщение об ошибке 6 - ERROR_INVALID_HANDLE.
Видимо, дело в параметрах создания pipe...
Может, кто-нибудь занимался этим больше чем я и может помочь?
MBo (2003-12-27 07:37:00) [1]
В MSDN есть примеры