Форум: "WinAPI";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизКак заставить именованый pipe работать по сети? Найти похожие ветки
← →
sds (2003-11-12 16:22) [0]В общем суть проблемы такова: создается именованая труба на пролижении-сервере и обменивается данными с клиентом. Если сервер и клиент запущены на одном компе - всё идеально. Если на разных - клиент ругается что он не может такое создать.
Подскажите плиз где может быть ошибка. И возможен ли вообще обмен таким образом по локалке.
← →
y-soft (2003-11-12 16:38) [1]Какую ошибку выдает?
← →
clickmaker (2003-11-12 16:55) [2]Какое имя у пайпа? И что GetLastError грит при создании или обмене?
← →
Игорь Шевченко (2003-11-12 17:13) [3]
> И возможен ли вообще обмен таким образом по локалке.
Возможен. В Platform SDK демо есть
← →
sds (2003-11-17 12:39) [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-17 12:53) [5]Вместо File_Share_Read + File_Share_Write поставьте 0.
Каналы используются только монопольно, т.е. не допускают совместного использования.
← →
Игорь Шевченко (2003-11-17 12:54) [6]А со стороны серверного приложения как код выглядит ?
← →
sds (2003-11-17 13:28) [7]Со стороны сервера выглядит вот так:
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;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c