n° 219
Novembre 2017
Luglio 16, 2018, 10:57:56 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: 2 Applicazioni devono dialogare, come?  (Letto 2967 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
Raistlin
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo
« inserita:: Marzo 01, 2004, 07:16:54 »

Il Mio problema e\' far dialogare 2 applicazioni senza l\'uso dei file.
Devo creare un demone che faccia un controllo ogni 10 millisecondi e se il test e\' positivo deve inviare un segnal;e al programma principale. Come posso fare?
Avevo pensato al Memory Mapped Files ma si e\' dimostrato ignobile da usare in VB, qualcuno ha qualche soluzione tipo pipe o cose del genre?
Registrato
m.sturari
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 224

0
Mostra profilo
« Risposta #1 inserita:: Marzo 02, 2004, 08:49:12 »

Io conosco due metodi per fare quello che chiedi:
- Un demone fa da server e tiene una socket aperta con cui i client possono comunicare e richiedere un servizio
- Il client manda un messaggio al demone con SendMessage
Da qualche parte ho un esempio del primo (in C) e uno del secondo in VB, provo a cercarli.
Comunque riguardo ai memory mapped file, la scelta migliore per condividere aree di memoria è il Mutex.
Registrato

Mirco Sturari
I\'ve seen things you people wouldn\'t believe.
Attack ships on fire off the shoulder of Orion.
I watched C-beams glitter in the dark near the Tannhauser gate.
All those moments will be lost in time,
like tears in rain.
Time to die.
Blade Runner - R.Scott(Roy Batty)
Raistlin
Newbie
*

Karma: +0/-0
Scollegato Scollegato

Messaggi: 5


Mostra profilo
« Risposta #2 inserita:: Marzo 02, 2004, 10:10:41 »

Io ho pensato di impostare la cosa in questo modo:

Programma 1 (Scritto in C) - Fa i suoi controlli e scrive sulla memoria condivisa

Programma 2 (Scritto in C) - Legge dalla memoria condivisa e scrive su file

Programma in Vb legge da File con tutta calma

Mi sembra la soluzione migliore.
Dato che far leggere direttamente a VB le aree di memoria condivisa e\' un operazione complessa che non ho il tempo (Purtroppo) di imparare....

Riguardo al Mutex.. cose\'?!
Io speravo di poter usare le pipe ma temo siano esclusivamente per linux
Registrato
Roberto Allegra
Global Moderator
Hero Member
*****

Karma: +50/-1
Scollegato Scollegato

Messaggi: 2103



Mostra profilo WWW
« Risposta #3 inserita:: Marzo 02, 2004, 10:21:42 »

anch\'io vengo da Linux e trovo che lo scambio fra thread in Windows sia sempre e comunque umiliante. Ma se è per questo lo è anche la creazione di threads, comunque.

In .NET pare sia più facile. Quindi se hai VB.NET puoi usare il Threading gestito che si propone come una meraviglia...
Registrato

I moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.
_semar_
Newbie
*

Karma: +0/-1
Scollegato Scollegato

Messaggi: 47


Mostra profilo
« Risposta #4 inserita:: Marzo 02, 2004, 11:36:16 »

A mio avviso la prima soluzione proposta da m.sturari e\' degna di attenzione.

Anch\'io pensavo a qualcosa del genere, accantonando DDE e scambio di informazioni usando un file, che va incontro sempre a problemi legati al sincronismo - ovvero quando leggere il file ? come capire che e\' stato aggiornato ? ecc..

In pratica, basta usare il socket, ovvero il controllo winsock.

Si mettono in comunicazione le due applicazioni, e quando devono scambiare un messaggio, questo viene mandato sul canale socket appropriato, certo che l\'applicazione in ascolto lo ricevera\' - la comunicazione avviene in locale, ma puoi anche concepirla in modo da comunicare in remoto, con una minima modifica.

Esempi su come usare il controllo winsock dovresti trovarne a bizzeffe sulla rete, e su mdsn...

Sergio.
Registrato
Roberto Allegra
Global Moderator
Hero Member
*****

Karma: +50/-1
Scollegato Scollegato

Messaggi: 2103



Mostra profilo WWW
« Risposta #5 inserita:: Marzo 02, 2004, 02:02:45 »

Sono d\'accordo. Personalmente ho usato parecchio il Winsock per far comunicare applicazioni, visto proprio il casino che bisogna fare altrimenti.

Il problema è il passaggio delle informazioni. Dovrai perdere un po\' di tempo a stabilire un protocollo fra le due applicazioni, e il passaggio via Winsock non è proprio quanto di più immediato esista al mondo.

Però se la velocità non è un problema per te, è forse la soluzione ottimale.
Registrato

I moderatori invitano tutti gli utenti a prendere visione del REGOLAMENTO e a rispettarlo.
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines