named pipes

7 отговора 338 прегледа
#1

named pipes

imam edno prilojenie koeto chrez named pipes se vurzva kum druga svoja instancia i se pingvat dvete (connect,send message, disconnect).
ako pusna dve instancii na moja komp (1) - vsichko vurvi. ako obache sloja instancia na komp (2): 1 otgovarja na pingovete, no ne moje ot svoja strana da pingva 2 (createfile(pipe_2) vrushta error_access_denied). zabavnoto stava kogato na komp (3) sushto sloja instancia, togava puk 2 i 3 si se pingvat bez problemi.
nekoi da znae kakuv moje da e problema na 1 ?
thanx

Отговор
в отговор на slop #2

Re: named pipes

Permissions?

Отговор
в отговор на Bonev #3

Re: named pipes

mi dvata pipa( na 1 i na 2) se syzdavat po identichen nachin s default security (random access)
3 nema nekakvi specialni permissioni za 2 i dvata si komunikirat fine. a 1 zashto ne moje da pishe na 2 ?
napravih logina na usera puskasht 1 administrator na 2 i pak ne stava nishto

Отговор
в отговор на slop #4

Re: named pipes

Pipe-a ima klientska chast i serverska chast. Trjabva da si otgovorish na vyprosa kyde kakyv pipe ima.

Ot objasnenijata ti bih predpolojil, che 2 i 3 se pingvat prosto poradi sluchainost:
pusnal si 2, 2 se e opital da syzdade serverski pipe za shared ot 1 resurs, fail-nal e, pusnal si 3, resursa na 3 ne e share-nat ot 1, 2 namira serverskija pipe na 3, i syotvetno 2 i 3 pochvat da si gukat bezproblemno. S dve dumi, problemyt mi zvuchi kato da e konceptualen, ne implementacionen.

Da, tova e wild shot - s informacijata, kojato si dal prosto ne mi e jasna postanovkata.
Interesnite momenti sa njakolko - kak se tyrsjat edin drug 1,2 i 3, koi vzema reshenieto da iniciira ping-a, kakyv e locking mehanizma za resursite, vyrhu koito stypvat pipe-ovete ti (primerno ako edinija otvori file v lokalnata ti mreja s deny-share-to-everyone-else i go expose-ne, a posle i drugija probva da go otvori - jasno e kvo shte stane).
Bi bilo po-lesno ako "shed some light here" :-)

Отговор
в отговор на manski #5

Re: named pipes

mai objasneniata mi naistina sa bili typi shtom nikoi dosega ne e razbral nishto.
predstavi si app - ima edin tred za "pingavne" na izvesten predvaritelno pipe (primerno "\\serv2\pipe\p2) i drug thread koito si suzdava pipe na koito she slusha s connectnamedpipe() (\\.\pipe\pipe1)
e drugia server(serv2) si syzdava \\.\pipe\p2 i tursi \\serv1\pipe\p1 s createfile()
taka po-jasno li stana ?
:)

btw kak e v ms ? :))

Отговор
в отговор на slop #6

Re: named pipes

vsushnost reshih problema -
malko security matters.... :)

Отговор
в отговор на slop #7

Re: named pipes

He, znaeh si :-)
Ja daj podrobnosti.

Отговор
в отговор на Bonev #8

Re: named pipes

:)
mi znachi kogato chovek vika CreateNamedPipe() e normalno da se izkushi i da zadade NULL kato posleden parametyr kato SECURITY_ATTRIBUTES, koeto dava default security. samo che se okazva che default secirity ne znachi free-for-all security i tova mi beshe problema. kakto i da e sled golemi bitki i tursene v msdn i internet stignah do q102798 article ot msdn specialno za security matters za pipes. smeshnoto e che namerih edinstveno japonskata versia na tozi article, za shtastie obache koda tam e na latinica :))
za da vi spestja roveneto eto koda koito zadava free-for-all security:

InitializeSecurityDescriptor(&pSD,
SECURITY_DESCRIPTOR_REVISION);

SetSecurityDescriptorDacl(&pSD, TRUE, (PACL) NULL, FALSE);

sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = &pSD;
sa.bInheritHandle = TRUE;

i razbira se CreateNamedPipe trebva da se vikne s posleden parametyr "sa"


tova e

best regards

SLOP SLOP SLOP

Отговор