Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Как заставить именованый 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 вся ветка

Текущий архив: 2004.01.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
14-63358
Борец Анатолий
2003-12-10 15:44
2004.01.20
Где взять Delphi 7 Help на Русском?


1-63094
hfa
2004-01-08 14:43
2004.01.20
webICQ и ICQ for windows


1-63183
Zheks
2004-01-10 13:12
2004.01.20
Открытие файла на дозапись


3-62977
Pako
2003-12-24 10:06
2004.01.20
запрос


14-63360
Mike Kouzmine
2003-12-29 16:42
2004.01.20
С Нового Года будет дорожать водка.