![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как заставить именованый pipe работать по сети? [D5, NT4, Win2k, WinXP]
sds © (2003-11-12 16:22:00)
В общем суть проблемы такова: создается именованая труба на пролижении-сервере и обменивается данными с клиентом. Если сервер и клиент запущены на одном компе - всё идеально. Если на разных - клиент ругается что он не может такое создать.
Подскажите плиз где может быть ошибка. И возможен ли вообще обмен таким образом по локалке.
sds (2003-11-17 13:28:00) [1]
Со стороны сервера выглядит вот так:
HWND_pipe := CreateNamedPipe(PChar("\\.\pipe\ContrDocPipe"),
PIPE_ACCESS_DUPLEX, // + FILE_FLAG_OVERLAPPED,
PIPE_TYPE_MESSAGE + PIPE_READMODE_MESSAGE + PIPE_WAIT,
1, //PIPE_UNLIMITED_INSTANCES,
BufOutSize,
BufInSize,
NMPWAIT_USE_DEFAULT_WAIT,
nil);
if HWND_pipe = INVALID_HANDLE_VALUE then begin
ErrorMessage("INVALID_HANDLE_VALUE");
end;
Игорь Шевченко (2003-11-17 12:54:00) [2]
А со стороны серверного приложения как код выглядит ?
Александр Спелицин (2003-11-17 12:53:00) [3]
Вместо File_Share_Read + File_Share_Write поставьте 0.
Каналы используются только монопольно, т.е. не допускают совместного использования.
sds (2003-11-17 12:39:00) [4]
Спасибо что откликнулись
GetLastError выдает то №2 - невозможно создать файл, то №5 - доступ запрешен. На разных машинах по разному. Чаще 2. Это всё при созданни пайпа на клиенте.
Имя у пайпов типа такого "\\.\pipe\ContrDocPipe" - на сервере
"\\полное имя станции сервера\pipe\ContrDocPipe" - на клиенте
пробовал подставлять вместо имени сервера его IP - эффект такой же.
i := 3;
repeat
HWND_pipe := CreateFile(PChar(pipeName),
Generic_Read + Generic_Write,
File_Share_Read + File_Share_Write,
nil,
Open_Existing,
File_Attribute_Normal,
0);
if HWND_pipe <> INVALID_HANDLE_VALUE then begin
break;
end;
LastError;//пишет в лог номер ошибки через GetLastError
dec(i);
until i = 0;
Так он на клиенте создается
Делал всё вроде как в хелпнике написано, не могу понять в чем проблема
Игорь Шевченко (2003-11-12 17:13:00) [5]
> И возможен ли вообще обмен таким образом по локалке.
Возможен. В Platform SDK демо есть
clickmaker (2003-11-12 16:55:00) [6]
Какое имя у пайпа? И что GetLastError грит при создании или обмене?
y-soft (2003-11-12 16:38:00) [7]
Какую ошибку выдает?