PDA

Visualizza la versione completa : [C] Problema con IP usando socket


scu
07-04-2009, 21:01
salve, sto scrivendo un programma per inviare dati tramite socket.

ho scritto due programmi, uno funge da server l'altro da client. usando una rete locale sia per il server che per il client (ip 127.0.0.1) tutto funziona perfettamente.

allora ho provato a verificare se le mie applicazioni funzionava su due pc diversi.

Considerando due ipotetici ip (ip1 --> pc1 , ip2 --> pc2), ho fatto le seguenti operazioni:

1 - l'applicazione server la voglio usare su pc1 quindi ho inserito nel programma server ip2 per collegarmi a pc2.

2 - la stessa cosa l'ho fatta con l'applicazione client: ho usato ip1 per collegarmi a pc1.

appena eseguo l'applicazione server (su pc1), l'applicazione si blocca, la stessa cosa succede quando lancio il progr client su pc2.

come risolvo questo problema?

Emulator ®
07-04-2009, 21:25
Si blocca che significa? Hai provato in locale? Se sei in ambiente grafico, ti occorrerà usare i thread...

Facci sapere meglio...

scu
07-04-2009, 21:58
si in locale funzione perfettamente..... si blocca significa che si verifica un errore ed il sistema operativo chiude l'applicazione

oregon
07-04-2009, 22:37
Dirci di quale errore si tratta non e' una cosa indifferente ... QUALE messaggio d'errore hai?

E poi, i due PC, sono in rete locale (LAN) o su Internet ...?

scu
07-04-2009, 23:01
i due pc sono connessi da un router ma vi accedo in WAN...

il problema è il fatto che su un pc il server rimane in attesa de client (corretto), ma il client non riesce a trovare il server, infatti dopo alcuni secondi i tentativi di connessione falliscono. da cosa può essere causato?

Emulator ®
07-04-2009, 23:04
Più che dirti assicurati che la porta inserita sia giusta, che il firewall permetta l'accesso a quella porta e che l'indirizzo che imetti è corretto.. nn saprei.

scu
07-04-2009, 23:10
cosa intendi per 'assicurarti che la porta inserita sia giusta'?

Emulator ®
07-04-2009, 23:13
Porta di [/b]bind o di connessione dal [b]client... comunque mi è venuta un'altra idea, nell'aperura del Server, hai specificato un IP specifico o hai messo 0.0.0.0 come è giusto che sia nel tuo caso?

scu
07-04-2009, 23:17
no ho specificato l'ip del pc client.... ma perchè dovrei immettere 0.0.0.0?

Emulator ®
07-04-2009, 23:20
Bhé, per fare in modo che sia accessibile da tutti.

Io intendo nella sockaddr_in...


Variabile.sin_addr.s_addr = 0;


Hai specificato così? E comunque... hai provato a pingare il PC, si rispondono?

Loading