Salve a tutti, sto cercando di farmi un mini-server da lasciar girare a casa mia dove sono collegato all'adsl con un router wireless e al quale voglio poter collegarmi dall'esterno, per esempio dal lavoro.
Nel pc di casa (quindi il "lato server") ho il classico ip statico 192.168.0.2 e il router è stato impostato in modo da fare il port forwarding della porta che voglio usare per il mio server (come esempio scrivo porta = 12345)
Quindi la situazione del NAT del router è la seguente:
Rule Application Start Port End Port Local IP Address
1 _server 12345 12345 192.168.0.2
in questo modo *in teoria* collegandomi col mio client all'indirizzo pubblico del mio router (per esempio 93.148.123.456) e alla porta 12345 la connessione dovrebbe essere stabilita al mio pc..
Il problema è che ciò non avvieneSe provo il client in locale con indirizzo 127.0.0.1 funziona e funziona anche se provo con l'indirizzo della Lan 192.168.0.2..mentre con l'ip pubblico no
![]()
posto anche il core del server:
TcpListener TcpList = new TcpListener(12345);
TcpClient req = TcpList.AcceptTcpClient();
NetworkStream mess = req.GetStream();
while ((recv = mess.Read(buff, 0, buff.Length)) != 0)
{ //DoSomething(); }
mentre il core del client è il seguente:
TcpClient client;
client = new TcpClient();
client.Connect( 93.148.123.456, 12345);
stream = new NetworkStream(client.Client);
stream.ReadTimeout = 5000;
//doSomeElse();
non penso sia un problema del programma sinceramente, anche perchè altrimenti non funzionerebbe neanche in locale..quindi le mie domande sono queste:
C'è qualcuno che ha capito cosa sto sbagliando, probabilmente sulle impostazione del router?
oppure qualcuno sa se le classi TcpListner e Client hanno delle limitazioni per connessioni non edn-to-end?
oppure ancora qualcuno conosce un set di istruzioni che superi queste eventuali limitazioni?
qualcuno sa se il NAT di un normalissimo router wireless filtra in qualche modo questo tipo di connessioni?
Qualcuno sa se è opportuno cambiare le impostazioni del tipo di porta sulle regole del NAT (io ho lasciato ftp come da default e uso come tipo "ftp" per qualsiasi tipo di applicazioni -vedi emule, torrent, ecc- e non ha mai fatto problemi)?
p.s.: sto operando su Vista e ho impostato manualmente il firewall in modo che non blocchi nè il lato server, nè il lato client![]()
Grazie a tutti![]()