Originariamente inviato da zipangulu
ma quando un altro pc non in LAN (in Lan tutto funziona a dovere) la cosa non funziona,il client "esterno" riceve eccezzioni tipo:
"SocketException : Network is unreachable: connect"
o altra eccezzione che è scaduto il timeout per raggiungere la connessione

Quale può essere la causa?
Quando i due host non sono sulla stessa rete "locale" (che sia cablata o wireless cambia poco) ma su una rete più ampia, come internet, non centrano più nulla questioni di programmazione o del linguaggio usato.

Sono questioni di "rete", perché bisogna vedere quale è la infrastruttura di rete che c'è "in mezzo" ai due host. Se è il caso più ampio (e tipico) di due host collegati ad internet ognuno attraverso un provider (che può essere lo stesso o diverso, cambia poco), ci sono diversi fattori da considerare.

a) Il client deve sapere o l'indirizzo IP "pubblico" (preferibilmente dovrebbe essere uno "statico") che l'altro host ha su internet (questo in genere è assegnato dal provider) o un nome di host (dominio registrato che punta al IP oppure nel caso di IP dinamico si possono sfruttare servizi di dynamic-DNS).
b) La porta usata per fornire il servizio non deve essere "filtrata" dal/dai provider interessati lungo il percorso di comunicazione.
c) Chi possiede e gestisce l'host "server" deve preoccuparsi di "aprire" la porta sui vari dispositivi e macchine lungo cui passa la comunicazione. Tipicamente router ADSL, firewall hardware (ma anche software su un PC, tipo quello di Windows o ZoneAlarm o altri).

Questo come minimo per gli utenti "home". Su reti aziendali potrebbe essere più complesso e difficilmente un normale utente/dipendente ha controllo su questi aspetti specialmente il punto c).

E lo ripeto: non è una problematica di programmazione ma di "networking".