[ mischo @ 21.12.2005. 13:31 ] @
Da li neko ima predlog za rešenje asinhrone komunikacije sa aplikacijom koja radi kao windows servis. Aplikacija je pisana kao c++ unmanaged kod. Potrebno je obezbediti komunikaciju sa C# web servisom.
[ X Files @ 21.12.2005. 16:19 ] @
Sta podrazumevas pod asinhronom komunikacijom sa servisnom aplikacijom? Sta
se prenosi, ko kome salje?

Servisna aplikacija u sebi moze imati maltene sve mehanizme koji postoje i kod
obicne aplikacije...

Na primer ja koristim cesto asinhrone (non-blocking) socket-e za komunikaciju sa
drugim servisima i/ili aplikacijama. Na zalost ja koristim Borland C++ Builder za tu
svrhu, ali nema razloga da isto to ne moze nekako i sa MS VC++.

Ako treba samo nesto da javis servisnoj aplikaciji, ona vec ima mehanizam za to
preko OpenService() i SERVICE_USER_DEFINED_CONTROL.

--- klijent salje ---

Code:

bool TMainForm::CommandUserDefinedReload()
{
   bool Result;
   SC_HANDLE H2 = OpenService ( H1, ServName, SERVICE_USER_DEFINED_CONTROL );
   Result = ControlService ( H2, 200, &sstatus );
   if ( ! H2 ) CloseServiceHandle ( H2 );
   return ( Result );
}


--- server prima ---
Code:

bool __fastcall TLocalLanMsgService::DoCustomControl(unsigned CtrlCode)
{
   if ( CtrlCode == 200 )
   {
      // primljeno ...
   }

   return ( true );
}