Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Socket: dubbio sulla scelta dell'indirizzo del destinatario.
Forum - C/C++ - Socket: dubbio sulla scelta dell'indirizzo del destinatario.

Avatar
gcali (Normal User)
Newbie


Messaggi: 12
Iscritto: 23/03/2014

Segnala al moderatore
Postato alle 12:21
Domenica, 23/03/2014
Salve a tutti!
Ho appena cominciato a studiare "Beej's Guide to Network Programming", ed ho un problema non trascurabile: i dati non vengono ricevuti dal pc del destinatario. :D

Pensando fosse una mia svista, ho controllato e riscritto più e più volte il codice, ma il problema persiste. Aprendo server e client e inserendo come indirizzo 127.0.0.1 ovviamente ricevo, perciò immagino non sia un problema di sorgenti.

Ho provato sia con due computer nella stessa LAN (inserendo l'indirizzo LAN), che con due computer in remoto (inserendo l'indirizzo IP pubblico), e credo che il problema sia che, se inserisco l'IP pubblico e il pc target condivide la rete con altri, il mio programma non "sa" dove instradare i dati.

Avete qualche idea? :-|
(Mi scuso in anticipo se ho detto qualche scemenza, ho una conoscenza abbastanza superficiale sulle reti di computer, sono un autodidatta)

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:27
Domenica, 23/03/2014
Nella stessa LAN funziona? Non è chiaro ...

Sicuramente se il server sta su Internet, essendoci dei router da configurare nel mezzo, dipende dalla configurazione di tutti i sistemi e anche dai provider utilizzati (ad esempio, per Fastweb c'è un discorso a parte).


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
gcali (Normal User)
Newbie


Messaggi: 12
Iscritto: 23/03/2014

Segnala al moderatore
Postato alle 14:20
Domenica, 23/03/2014
Non funziona neanche sulla stessa LAN, solo sullo stesso pc con l'indirizzo locale o con i socket di dominio locale.
La mia intenzione era quella di scrivere un semplice client-server di chat, perciò ho bisogno di stendere un sorgente "standard", che non dipenda dalle configurazioni delle singole reti. E' possibile farlo con una connessione fra due pc? E se non lo è, quali sono le alternative?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:56
Domenica, 23/03/2014
Nella stessa LAN deve funzionare ...

Il server ascolterà sul proprio IP ... il client contatterà l'IP del server (ovviamente non utilizzerai mai il 127.0.0.1)

Il resto della domanda non l'ho capita. Che intendi con sorgente che non dipenda dalla configurazione di rete? La configurazione di rete è importantissima.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 22:50
Domenica, 23/03/2014
Se usi windows il problema dev'essere nel firewall, prova a disattivarlo per quella porta.


PM Quote
Avatar
gcali (Normal User)
Newbie


Messaggi: 12
Iscritto: 23/03/2014

Segnala al moderatore
Postato alle 17:00
Martedì, 25/03/2014
Testo quotato

Postato originariamente da GN:

Se usi windows il problema dev'essere nel firewall, prova a disattivarlo per quella porta.



Uso Ubuntu, comunque non funziona neppure su Windows (con le opportune modifiche richieste da Winsock.h).

Testo quotato

Postato originariamente da nessuno:

Il resto della domanda non l'ho capita. Che intendi con sorgente che non dipenda dalla configurazione di rete? La configurazione di rete è importantissima.



Intendo qualcosa che possa funzionare a prescindere dalla configurazione, come i vecchi programmi di chat. Però mi viene in mente che due programmi di chat non si connettono direttamente fra di loro, ma con un server che sbriga il "lavoro sporco", è così?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5460
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:42
Martedì, 25/03/2014
A "prescindere dalla configurazione" non funziona nulla.

Non ha senso parlare di "vecchi programmi di chat".

Se parliamo di programmi che contattano un server, le cose non cambiano. Il server deve essere raggiungibile. Se dalla parte del server la configurazione non è corretta, non funzionerà nulla.

In realtà "server" è solo una "funzione" assunta da un programma in un particolare momento. E le regole per contattare un "programma server" sono sempre le stesse. Se la configurazione di rete del sistema su cui gira il "programma server" non è corretta, la cosa non funziona.

Quindi, riparti da zero e spiega nuovamente quali sono ancora i tuoi problemi. Se vuoi risolvere, segui esattamente quello che ti viene consigliato senza cercare "scorciatoie" inesistenti.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:29
Mercoledì, 26/03/2014
Ciao "gcali", le risposte al tuo problema possono essere tre:

1) Il firewall del S.O.
2) Il firewall del router
3) Errori nel codice del programma

Se è la terza risposta cerca di capire prima dove è l'errore e se proprio è il caso di postarlo e quantomeno cercare di capire dove è il problema, altrimenti per le altre due risposte penso che sai cosa dovresti fare. Limitare o disattivare momentaneamente i firewall per capire se sono loro la causa, perchè molte volte capita fidati :D. Ti auguro di risolvere al più presto.

Neo92 ;)

PM Quote