Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
11-63045
=Sniper=
2003-05-04 12:32
2004.01.20
Editbox и Combobox


7-63420
MAXHO
2003-10-25 14:49
2004.01.20
LPT-порт


6-63276
Barsky
2003-11-18 12:51
2004.01.20
Как передать файл через 80-й порт?


14-63368
Pa5ha
2003-12-24 22:00
2004.01.20
Размер ЕХЕ


6-63286
Vicol_V
2003-11-17 16:30
2004.01.20
Как отключить активное подключение NetStat




   Наверх