Главная страница
    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.46 MB
Время: 0.011 c
4-63434
Talla2k
2003-11-15 12:30
2004.01.20
Убийство потока через сообщение


11-63052
Babenko Alexey
2003-04-16 14:30
2004.01.20
MCK 1.7 глюки


6-63283
Jorik
2003-11-17 12:52
2004.01.20
Сообщения


3-62987
3APA3A
2003-12-24 00:53
2004.01.20
Размер Paradox овской БД


1-63235
Ivolg
2004-01-09 11:53
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский