drugo66 Inserito: 23 luglio 2014 Segnala Share Inserito: 23 luglio 2014 Salve a tutti, mi stavo chiedendo se esiste un modo per comunicare in ethernet fra 2 PC, ovviamente della stessa sottorete, fra programmi scritti in VC++; l'ho già fatto, ma in un modo che non mi soddisfa: io scrivevo un file .txt nell'hard disk dell'altro PC, che l'altro software si preoccupava di leggere; vorrei, invece, poter condividere parti di memoria (variabili) come si fa con i PLC: ad esempio, l'uno alza un bool per dire che è in attesa, l'altro scrive dei valori in alcune variabili e poi resetta lo stesso bool nel primo PC. Ho cercato in rete qualcosa di simile, ma ho trovato poco o niente ... Grazie a tutti P.S.: normalmente utilizzo VC++ con MFC, ma sono in grado di tradurre dai linguaggi più usati. Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 23 luglio 2014 Segnala Share Inserita: 23 luglio 2014 Per far comunicare i due PC potresti usare un socket TCP Un pc apre un socket in ascolto su una data porta l'altro si collega al socket come client Una volta stabilita la connessione ci fai passare i dati utilizzando ad esempio modbus TCP questo programma ti consente di aprire un socket tcp server/client e provare una comunicazione semplicemente scrivendo dalla tastiera Io però non utilizzerei VC++ ci sono altre soluzioni che rendono la vita molto semplice Io sono "datato" e mi sono fermato al TCLe ti assicuro che bastano poche righe di codice per fare quello che chiedi tu. E hai anche il vantaggio che lo stesso codice lo puoi usare in ambiente win/linux/mac Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 24 luglio 2014 Autore Segnala Share Inserita: 24 luglio 2014 Ok, grazie delle dritte : appena ho tempo, ci "tiro un occhio" e vi faccio sapere. Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 18 agosto 2014 Autore Segnala Share Inserita: 18 agosto 2014 Ciao a tutti. trovate quello che "ho combinato" con VC++ versione 6 e le MFC; ci sono 4 cartelle: Old: contiene il primo tentativo utilizzando SOCKET, ma non mi soddisfaceva completamente, quindi l'ho praticamente abbandonato. Class: contiene il progetto della classe CSocketComm; nei file di implementazione e header c'è la documentazione in inglese, mentre in SocketComm.txt la documentazione è in italiano; utilizza CSocket e invia sia dati che testo. Dll: contiene la DLL di estensione di CSocketComm: ho provato ad utilizzarla con compilatori più "aggiornati" e sembra funzionare Exe: contiene dll, lib, header e documentazione. Ho testato la classe con una specie di Chat (molto ridotta): un PC deve comunicare come server mentre gli altri come client (ne ho provati fino a tre). Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 21 agosto 2014 Segnala Share Inserita: 21 agosto 2014 la strada piu intuitiva e' quella di implementare i socket di berkeley ,Di solito ogni linguaggui fornisce librerie di socket per creare connessioni client-server . La stessa tecnologia e' usata per creare comunicazioni o code di messaggi tra diverse applicazioni che girano su uno stesso pc Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 21 agosto 2014 Autore Segnala Share Inserita: 21 agosto 2014 (modificato) Ciao, SOCKET è un handle MSC compatibile con i sockey Berkeley versione 4.3; ho preferito CSocket delle MFC perchè è possibile l'utilizzo abbinato la classe CArchivie (sempre MFC e gestisce il salvataggio di file), quindi più facile per la gestione dei dati; l'idea è, in caso di bisogno, aggiungere i dati che mi servono, farne una DLL e consegnarla alla controparte in modo che possa utilizzarla; per la compatibilità si vedrà se e quando ne avrò bisogno; in ogni caso, sono presenti entrambi, solo che con SOCKET occorre convertire tutti i dati in testo prima di inviare e dopo la ricezione. Modificato: 21 agosto 2014 da drugo66 Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 22 agosto 2014 Segnala Share Inserita: 22 agosto 2014 si giusto , se gli oggetti fanno parte della stessa libreria o famiglia meglio usare quelli .Se il metodo send vuole una stringa o un array di caratteri non e' sicuramente un problema convertire uno stream di bytes o una struttura dati in bytes e poi array di char , uno come te lo sa fare Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 22 agosto 2014 Autore Segnala Share Inserita: 22 agosto 2014 Vero, ma è anche vero che se si usa un compilatore simile, è molto più veloce aagiungere dati ad una classe derivata da CObject, farne una DLL e consegnarla alla controparte. Un'altro limite di SOCKET è che quando lo metti in "ascolto" come server con listen(), quello ci rimane e non esiste una funzione tipo close(), almeno io non l'ho trovata. In ogni caso, mi sono lasciato aperte entrambe le strade ... Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 22 agosto 2014 Segnala Share Inserita: 22 agosto 2014 io avevo sviluppato a suo tempo una libreria tcp/ip modbus in C# che avevo testato con microcontrollori Rabbit ZWorld e plc schneider e s7 Poi avevo provato una libreria che si chiama SocketWrench , costava relativamente poco Però se tu devi rimanere in ambito win32 con c++ .... Considera che in .NEt con c# si pososno creare oggetti remoti , per esempio un oggetto che contiene dati in un pc e po dall'altro pc fai una chiamata ad un metodo del oggetto e ti ritrovi tutti i dati in locale con pochissime righe . La libreria wrappa le funzionalità socket , xml e quant'altro , l'assembly si chiama Remoting Anche in java ci sono oggetti simili Ovviamente tra pc e pc con installati i relativi framework puoi farlo , se invece uno o piu terminali sono processori generici allora bisogna ricorrere alle socket classiche Link al commento Condividi su altri siti More sharing options...
drugo66 Inserita: 22 agosto 2014 Autore Segnala Share Inserita: 22 agosto 2014 Grazie delle info. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 22 agosto 2014 Segnala Share Inserita: 22 agosto 2014 figurati... Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora