Comunicazione fra processi C

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
kernel10001
Prode Principiante
Messaggi: 8
Iscrizione: sabato 14 novembre 2015, 16:28
Sesso: Maschile

Comunicazione fra processi C

Messaggio da kernel10001 »

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.
Avatar utente
eaghezzi
Scoppiettante Seguace
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

Messaggio da eaghezzi »

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
Avatar utente
Dclaudio1990
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 624
Iscrizione: sabato 11 aprile 2015, 14:31
Distribuzione: openSUSE
Sesso: Maschile
Località: Roma

Re: Comunicazione fra processi C

Messaggio da Dclaudio1990 »

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.
:ciao:
"Io penso, dunque sono, ossia esisto."
-René Descartes
kernel10001
Prode Principiante
Messaggi: 8
Iscrizione: sabato 14 novembre 2015, 16:28
Sesso: Maschile

Re: Comunicazione fra processi C

Messaggio da kernel10001 »

Quindi come devo fare per far comunicare i due processi in linguaggio C? Se inserisco IP pubblico non va.
Avatar utente
eaghezzi
Scoppiettante Seguace
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

Messaggio da eaghezzi »

Sul PC cliente apri un società
In scrittura verso altro IP
Sul server apri un socket in lettura
E leggi i messaggi del client
Avatar utente
Dclaudio1990
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 624
Iscrizione: sabato 11 aprile 2015, 14:31
Distribuzione: openSUSE
Sesso: Maschile
Località: Roma

Re: Comunicazione fra processi C

Messaggio da Dclaudio1990 »

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.
Ricordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
:ciao:
"Io penso, dunque sono, ossia esisto."
-René Descartes
Avatar utente
eaghezzi
Scoppiettante Seguace
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

Messaggio da eaghezzi »

Ricordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
NO! è proprio l'incontrario

è 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! :lol:
Avatar utente
Dclaudio1990
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 624
Iscrizione: sabato 11 aprile 2015, 14:31
Distribuzione: openSUSE
Sesso: Maschile
Località: Roma

Re: Comunicazione fra processi C

Messaggio da Dclaudio1990 »

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:
Ricordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
NO! è proprio l'incontrario

è 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! :lol:
Cosa è l'incontrario?
Se io voglio collegarmi ad un IP su una porta in cui non c'è nessun processo in ascolto, non mi collego.
:ciao:
"Io penso, dunque sono, ossia esisto."
-René Descartes
Avatar utente
eaghezzi
Scoppiettante Seguace
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

Messaggio da eaghezzi »

se voglio aprire un socket in ascolto la porta deve essere chiusa o comunque non utilizzata.

la frase
Ricordati che l'ip che raggiungi deve avere la porta con cui stai comunicando aperta.
è un pò ambigua ...
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.
Avatar utente
Dclaudio1990
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 624
Iscrizione: sabato 11 aprile 2015, 14:31
Distribuzione: openSUSE
Sesso: Maschile
Località: Roma

Re: Comunicazione fra processi C

Messaggio da Dclaudio1990 »

Era scontato che la frase fosse riferita al socket che si connette, non al socket in ascolto.
:ciao:
"Io penso, dunque sono, ossia esisto."
-René Descartes
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti