Comunicazione tra processi

venerdì 16 febbraio 2007 - 12.16

Jumpa Profilo | Junior Member

Ciao a tutti,
ho un servizio ed un processo in esecuzione,
vorrei riuscire a far comunicare i due,
in modo che il servizio riesca a leggere il contenuto di una variabile nelle singole istanze del processo
e le varie istanze del processo devono leggere il contenuto di una variabile del servizio,
qualche idea su quale tecnica usare?

Grazie a tutti!

Jumpa
-------------------------
Follow the White Rabbit...

http://www.jumpa.org
-------------------------

us01739 Profilo | Expert

La cosa più semplice che mi viene in mente è scrivere i valori nel registro e poi rileggerli dall'altra apllicazione....
Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------

Jumpa Profilo | Junior Member

ci avevo pensato anche io,
ma non mi piaceva piu di tanto per una serie di motivi,
spulciando su internet, sono arrivato al dot net remoting, adesso sto provando a lavorare con questa tecnologia, sembra fungere! chissa!!!
-------------------------
Follow the White Rabbit...

http://www.jumpa.org
-------------------------

us01739 Profilo | Expert

Bene, facci sapere poi come è andata che può essere molto utile a tutti..
Bye Bye

---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
http://www.robertogelmini.com
---------------------------------------------------

Jumpa Profilo | Junior Member

ci sono pare che funziona!!

allora vi spiego tutto l'ambaradam! scusate se forse non sarò moòto preciso ma sto ancora studiando come fnge per benino!

Allora fondamentalmente si tratta di tirare su tre progetti
appServer ( applicazione windows )
appClassi ( libreria di classi )
appClient ( applicazione windows )

sia appServer, che appClient hanno tra i riferimenti appClassi.

la prima cosa simpatica che ho provato è che definendo una variabile statica in appClassi.miaClasse. bene il valore viene condiviso tra server e client di seguito due stralci di codice

CODICE DI APPCLASSI

using System;
namespace pippo.utils
{
public class clsUtils :MarshalByRefObject
{
public static int stato = 0; // variabile statica a cui voglio accedere da server e client
public void setStato(int _value)
{
stato = _value;
}
public int getStato()
{
return stato;
}
}
}

CODICE DI APPSERVER ( crei un nuovo progetto e metti quanto segue nel codice della form )

using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using fcworkgroup.netmon.client.utils;

string mName = "miaapp"; //nome dell'applicazione che vado a registrare
int mPort = "12345"; //porta tcp sulla quale mi metto in ascolto
private void Form1_Load(object sender, System.EventArgs e)
{ RemotingConfiguration.ApplicationName = mName;
TcpServerChannel p = new TcpServerChannel(mPort);
ChannelServices.RegisterChannel(p);
RemotingConfiguration.RegisterActivatedServiceType(typeof(pippo.utils.clsUtils));
pippo.ultil.clsUtils ut = new pippo.utils.clsUtils();
}


codice appClient
da notare 12345 e miaapp si possono cambiare ma vanno cambiati in entrambe i progetti
crei una nuova applicazione windows form e ci emtti il seguente codice
private void Form1_Load(object sender, System.EventArgs e)
{

RemotingConfiguration.RegisterActivatedClientType(typeof(pippo.utils.clsUtils),"tcp://localhost:12345/miaapp");

clsUtils ut = new clsUtils();


}


a questo punto buon divertimento con gli oggetti ut richimaanto i metodi setstato e getstato

-------------------------
Follow the White Rabbit...

http://www.jumpa.org
-------------------------

gilberto Profilo | Junior Member

Ciao!
Sto tentando fare la stessa cosa usando un esempio ultra stupido ma, al contrario di te uso VB non C# et similia.
Non è che puoi dirmi se ve ne sono anche nel mi linguaggio?

Te ne sarei grato!



Gilbert SS4
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5