Comunicazione fra processi C
-
kernel10001
- Prode Principiante
- Messaggi: 8
- Iscrizione: sabato 14 novembre 2015, 16:28
- Sesso: Maschile
Comunicazione fra processi C
Salve ragazzi, è da un po che cerco di chiarirmi un dubbio senza riuscirci.
Come fanno due processi che risiedono su due pc che si trovano in due luoghi diversi e in due reti diverse a comunicare fra loro?
Mi spiego meglio; il linguaggio C offre il meccanismo delle socket per la comunicazione fra processi, il problema è che se i due pc si trovano nella stessa rete va tutto bene ma se i due pc si trovano in due reti diverse non riesco più a farli comunicare.
Come fanno due processi che risiedono su due pc che si trovano in due luoghi diversi e in due reti diverse a comunicare fra loro?
Mi spiego meglio; il linguaggio C offre il meccanismo delle socket per la comunicazione fra processi, il problema è che se i due pc si trovano nella stessa rete va tutto bene ma se i due pc si trovano in due reti diverse non riesco più a farli comunicare.
- eaghezzi
- Scoppiettante Seguace

- Messaggi: 725
- Iscrizione: martedì 21 luglio 2009, 10:27
- Desktop: Lubuntu
- Distribuzione: Ubuntu 14.04.1 LTS i686
- Sesso: Maschile
- Località: Valleambrosia
Re: Comunicazione fra processi C
ahi ahi
se cosi fosse internet non funzionerebbe più
due reti diverse comunicano se fra loro c'è di mezzo un router esempio
pc'A' ip 192.168.1.1 gateway 192.168.1.100
pc 'B' 10.10.10.1 gateway 10.10.10.100
pc'C' diamo due indirizzi
ip1 192.168.1.100
ip 210.10.10.100
il traffico dal pc 'A' verso 'B' passa da 'C' e viceversa
tutto questo è trasparente alla programmazione socket
inserito l'ip di destinazione è lo stack tcp/ip che si ocupa del resto
se cosi fosse internet non funzionerebbe più
due reti diverse comunicano se fra loro c'è di mezzo un router esempio
pc'A' ip 192.168.1.1 gateway 192.168.1.100
pc 'B' 10.10.10.1 gateway 10.10.10.100
pc'C' diamo due indirizzi
ip1 192.168.1.100
ip 210.10.10.100
il traffico dal pc 'A' verso 'B' passa da 'C' e viceversa
tutto questo è trasparente alla programmazione socket
inserito l'ip di destinazione è lo stack tcp/ip che si ocupa del resto
- Dclaudio1990
- Scoppiettante Seguace

- Messaggi: 624
- Iscrizione: sabato 11 aprile 2015, 14:31
- Distribuzione: openSUSE
- Sesso: Maschile
- Località: Roma
Re: Comunicazione fra processi C
Concettualmente il concetto è semplice se si parla di indirizzi IP IPv4.
Devi sapere che gli IP non sono formati da numeri casuali messi a caso ma sono divisi in 2 parti:
-L'Identificazione della rete.
-L'Identificazione dell'host.
L'accopiata indirizzo IP indirizzo MAC permette di identificare qualsiasi dispositivo elettronico con un 'interfaccia di rete.

Devi sapere che gli IP non sono formati da numeri casuali messi a caso ma sono divisi in 2 parti:
-L'Identificazione della rete.
-L'Identificazione dell'host.
L'accopiata indirizzo IP indirizzo MAC permette di identificare qualsiasi dispositivo elettronico con un 'interfaccia di rete.
"Io penso, dunque sono, ossia esisto."
-René Descartes
-René Descartes
-
kernel10001
- Prode Principiante
- Messaggi: 8
- Iscrizione: sabato 14 novembre 2015, 16:28
- Sesso: Maschile
Re: Comunicazione fra processi C
Quindi come devo fare per far comunicare i due processi in linguaggio C? Se inserisco IP pubblico non va.
- eaghezzi
- Scoppiettante Seguace

- Messaggi: 725
- Iscrizione: martedì 21 luglio 2009, 10:27
- Desktop: Lubuntu
- Distribuzione: Ubuntu 14.04.1 LTS i686
- Sesso: Maschile
- Località: Valleambrosia
Re: Comunicazione fra processi C
Sul PC cliente apri un società
In scrittura verso altro IP
Sul server apri un socket in lettura
E leggi i messaggi del client
In scrittura verso altro IP
Sul server apri un socket in lettura
E leggi i messaggi del client
- Dclaudio1990
- Scoppiettante Seguace

- Messaggi: 624
- Iscrizione: sabato 11 aprile 2015, 14:31
- Distribuzione: openSUSE
- Sesso: Maschile
- Località: Roma
Re: Comunicazione fra processi C
Ricordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.kernel10001 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4870673#p4870673][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Quindi come devo fare per far comunicare i due processi in linguaggio C? Se inserisco IP pubblico non va.
"Io penso, dunque sono, ossia esisto."
-René Descartes
-René Descartes
- eaghezzi
- Scoppiettante Seguace

- Messaggi: 725
- Iscrizione: martedì 21 luglio 2009, 10:27
- Desktop: Lubuntu
- Distribuzione: Ubuntu 14.04.1 LTS i686
- Sesso: Maschile
- Località: Valleambrosia
Re: Comunicazione fra processi C
NO! è proprio l'incontrarioRicordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
è il socket in ascolto che apre la porta
se la porta è già aperta non può utilizzarla
detto questo ecco qua un semplice esempio
tutorial
adesso studia!
- Dclaudio1990
- Scoppiettante Seguace

- Messaggi: 624
- Iscrizione: sabato 11 aprile 2015, 14:31
- Distribuzione: openSUSE
- Sesso: Maschile
- Località: Roma
Re: Comunicazione fra processi C
Cosa è l'incontrario?eaghezzi [url=http://forum.ubuntu-it.org/viewtopic.php?p=4871697#p4871697][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:NO! è proprio l'incontrarioRicordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
è il socket in ascolto che apre la porta
se la porta è già aperta non può utilizzarla
detto questo ecco qua un semplice esempio
tutorial
adesso studia!
Se io voglio collegarmi ad un IP su una porta in cui non c'è nessun processo in ascolto, non mi collego.
"Io penso, dunque sono, ossia esisto."
-René Descartes
-René Descartes
- eaghezzi
- Scoppiettante Seguace

- Messaggi: 725
- Iscrizione: martedì 21 luglio 2009, 10:27
- Desktop: Lubuntu
- Distribuzione: Ubuntu 14.04.1 LTS i686
- Sesso: Maschile
- Località: Valleambrosia
Re: Comunicazione fra processi C
se voglio aprire un socket in ascolto la porta deve essere chiusa o comunque non utilizzata.
la frase
sulla macchina in cui vuoi essere in ascolto (server) la porta che decidi di utilizzare deve essere libera
per metterti in ascolto devi "aprirla"
per connetterti dal (client) al server devi avere già aperto la porta.
la frase
è un pò ambigua ...Ricordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
sulla macchina in cui vuoi essere in ascolto (server) la porta che decidi di utilizzare deve essere libera
per metterti in ascolto devi "aprirla"
per connetterti dal (client) al server devi avere già aperto la porta.
- Dclaudio1990
- Scoppiettante Seguace

- Messaggi: 624
- Iscrizione: sabato 11 aprile 2015, 14:31
- Distribuzione: openSUSE
- Sesso: Maschile
- Località: Roma
Re: Comunicazione fra processi C
Era scontato che la frase fosse riferita al socket che si connette, non al socket in ascolto.

"Io penso, dunque sono, ossia esisto."
-René Descartes
-René Descartes
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti