Possiedo un'applicazione universale di Windows che dovrebbe funzionare come un server TCP.Impossibile accedere al server TCP all'interno di un'applicazione universale Windows
m_Listener = new StreamSocketListener();
m_Listener.ConnectionReceived += (s, e) => ProcessRequestAsync(e.Socket);
var bind = m_Listener.BindServiceNameAsync("8080").Wait();
Prima di avviare l'applicazione, la porta non è strettamente legato a nulla:
C:\Users\jsant>netstat -a | grep 8080
^C (Cancelled after some seconds because no reasults were found)
Poi, quando inizio l'applicazione:
C:\Users\jsant>netstat -a | grep 8080
TCP 0.0.0.0:8080 Laptop:0 LISTENING
Così il socket è in ascolto sul mio computer ! Cercando di accedere in qualche modo, si traduce in un errore
C:\Users\jsant>telnet 127.0.0.1 8080
Connecting To 127.0.0.1...Could not open connection to the host, on port 8080: Connect failed
C:\Users\jsant>telnet 192.168.1.167 8080
Connecting To 192.168.1.167...Could not open connection to the host, on port 8080: Connect failed
C:\Users\jsant>telnet Laptop 8080
Connecting To Laptop...Could not open connection to the host, on port 8080: Connect failed
C:\Users\jsant>telnet localhost 8080
Connecting To localhost...Could not open connection to the host, on port 8080: Connect failed
ho attivato tutte le capacità per rimuovere che come una possibile ragione.
Lo stesso codice in esecuzione su un'applicazione console funziona correttamente.
Inoltre, l'esecuzione dell'esempio MS da https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/DatagramSocket ha avuto lo stesso risultato. All'interno dell'applicazione la presa era visibile, fuori, no!
Esiste qualche limitazione nell'esecuzione di un server in un'applicazione universale di Windows o mi manca qualcosa?
Grazie!
Joao
Edit penso che non era abbastanza chiaro. Il mio problema è l'accesso al server TCP da un'applicazione esterna esterna. L'applicazione può essere un telnet, un browser Web, ecc. Il server si trova all'interno di Windows Universal App.
Modifica # 2
Ho passato l'ultima ora cambiare questo esempio: https://ms-iot.github.io/content/en-US/win10/samples/BlinkyWebServer.htm e funzionante nel mio Raspberry Pi 2 sono stato in grado di accedere al server web dal mio computer. Non riuscivo a connettermi eseguendo la stessa applicazione sul mio computer. Questo è davvero strano!
Modifica n. 3 Ho modificato la mia applicazione, lasciato solo la funzionalità Internet (Client &) e nessuna dichiarazione. Funzionando nel Raspberry Pi funziona perfettamente, nel mio computer locale, ancora senza fortuna (locale o remoto). E sì, il firewall è disabilitato :). Sulla base dei commenti di Jared, dove conferma lo stesso problema con il suo computer, questo mi sembra un bug. Continuerò a indagare.
Modifica n. 4 dopo aver appreso il comando "CheckNetIsolation", aggiungendo la funzionalità "PrivateNetworkClientServer" mi ha permesso di avere accesso da un dispositivo esterno. Ancora, impossibile accedervi dal computer locale (anche con una regola LoopbackExempt aggiunta)
http://stackoverflow.com/questions/17833232/cannot-connect-to-localhost-in-windows-store-application –