Grazie per la risposta.

La questione del port redirect la conosco, ho postato qui proprio perchè volevo sapere se c'è un modo per far si che il programma effettui tale operazioni da codice.

Ciò per non dover agire sui router di casa e ufficio manualmente.

Un'altra cosa, se io programmo il lato server del programma per agire sulla porta 80 del router (essendo aperta sia a casa che in ufficio) in modo che rimanga in ascolto su tale porta, quando mi collego con il lato client utilizzando l'IP fornito dall'ISP, la macchina in ascolto dovrebbe rispondere o la connessione verrebbe comunque bloccata?

Mi spiego, mettiamo che a casa la macchina 192.168.1.2 è in ascolto sulla porta 80 (su di essa gira il lato server del programma), dall'ufficio mi collego utilizzando il lato client e come parametri di connessione inserisco, la porta 80 e l'indirizzo IP assegnato dal mio ISP per la connessione di casa.

Quando effettuo la connessione, il lato client dovrebbe trovare il lato server in ascolto sulla porta 80 e quindi stabilire la connessione al sistema 192.168.1.2 interno alla LAN oppure verrebbe bloccato dal router?

Grazie ancora.