Abbiamo un semplice software legacy con il quale abbiamo bisogno di comunicare tramite TCP/IP sulla porta 15001. Abbiamo bisogno di ascoltare sulla porta 15001 per il software legacy per fare una connessione e quindi leggere qualsiasi cosa ci mandi.TcpListener: ascolto su tutti gli indirizzi, incluso l'indirizzo IP GPRS
Abbiamo testato questa soluzione su Internet e funziona perfettamente. Se tuttavia testiamo la stessa soluzione su una rete TCP/IP GPRS, ciò non avviene.
Tutte le informazioni di base sono state verificate, è possibile eseguire il ping di altri dispositivi nella rete GPRS e la porta 15001 non è bloccata da alcun firewall.
Quindi forse c'è qualcosa di sbagliato nel mio TcpListener?
Si inizializzato in questo modo:
tcpServer = new TcpListener(IPAddress.Any, TCP_PORT);
Sto assumendo si mette in ascolto su ogni interfaccia abilitata IPv4 disponibili sul sistema, perché ho usato IPAddress.Any?
Qualcuno ha idea di quale potrebbe essere la differenza tra le due reti? (Anche se non dovrebbe esserci alcuna differenza) e se c'è qualcosa che devo cambiare al mio TcpListener?
Interessante che un codice di prova compilato/in esecuzione in Mono, inizia ad ascoltare su 0.0.0.0 se IPAddress.Any viene passato al costruttore. –
utilizza IPAddress. È analogo utilizzare il costruttore TcpListener (int Port) che è deprecato? –