Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-63150
zzet
2004-01-06 21:32
2004.01.20
FloatToDecimal


14-63342
Ru
2003-12-30 11:06
2004.01.20
вот смотрю я и думаю (да уменю)


14-63312
Undert
2003-12-26 22:42
2004.01.20
PC Speaker


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


14-63326
Undert
2003-12-30 20:59
2004.01.20
Метро ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский