Se le cose stanno come dici, le indicazioni ti sono già state fornite.

Tu hai scritto
Per ciò che riguarda il fatto di rimanere in attesa su una porta aperta, secondo te potrebbe funzionare?
Se si sta parlando di software in VB.NET, direi che rimanere in attesa mantenendo una porta aperta, come ho già scritto, è d'obbligo.

Se il tuo problema riguarda la configurazione del router, ho risposto anche in quel caso:
Mi sembra però una domanda "sistemistica" piuttosto che da "programmazione": non penso che C# abbia un'influenza nel problema.