Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Java ServerSocket non accetta connessioni remote

    Salve a tutti,
    Ho creato una semplice classe java che utilizza ServerSocket, quando provo con telnet se, il pc che sta ascoltando tramite la ServerSocket e il pc che sta utilizzando telnet si trovano nella stessa rete, tutto funziona, ma se faccio il telnet da un altra rete, la ServerSocket non riceve niente.

    Qualcuno sa come far accettare alla ServerSocket connessioni in entrata da un host remoto?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da iJim Visualizza il messaggio
    Salve a tutti,
    Ho creato una semplice classe java che utilizza ServerSocket, quando provo con telnet se, il pc che sta ascoltando tramite la ServerSocket e il pc che sta utilizzando telnet si trovano nella stessa rete, tutto funziona, ma se faccio il telnet da un altra rete, la ServerSocket non riceve niente.

    Qualcuno sa come far accettare alla ServerSocket connessioni in entrata da un host remoto?
    Dipende dalla configurazione di rete
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ho provato con la serversocket in ascolto su una rete Ali*e e un router cisco, e il client su un altra rete Ali*e con un router Ali*e.
    Poi ho invertito le cose, e in tutti e due i casi alla serversocket non arriva niente.
    Ho provato creando una classe client e ho provato anche con telnet.

    Ovviamente quando tutti e due gli host erano collegato allo stesso router funzionava!

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Fammi capire una cosa: non è possibile?
    Alla fine come hai risolto?

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ma hai capito cosa c'è scritto nel post di andbin?
    C'è scritto che per poter far sì che un'applicazione server riceva connessioni da internet è necessario che tutto l'hardware ed il software che ha a che fare con le connessioni di rete (quindi, router, eventuali firewall hardware ed eventuali firewall software) siano correttamente configurati per accettare e far passare connessioni su quel particolare IP e su quella particolare porta.

    Tu hai configurato il tutto? Perchè, in generale, di default, i router non fanno passare nulla e nemmeno i firewall.

    Se vuoi che la tua applicazione riceva connessioni sulla porta X, allora il tuo router deve avere la porta X aperta (e va fatto a mano) e tutti gli eventuali firewall che si frappongono devono avere la porta X aperta (e anche questo va fatto a mano).

    Ma, come già detto, tutto questo non c'entra nulla con Java, si tratta di normale amministrazione di rete.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Grazie per la risposta!

  8. #8
    Un'ultima domanda: è possibile utilizzare come porta di ascolto la porta 80?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da iJim Visualizza il messaggio
    Un'ultima domanda: è possibile utilizzare come porta di ascolto la porta 80?
    Tecnicamente qualunque porta .... purché non sia già in uso da un'altra applicazione "server". Sui sistemi Linux le porte < 1024 sono utilizzabili solo come "root".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Devo scrivere una piccola applicazione peer to peer, ho letto su internet che è possibile tramite una tecnica che si chiama NAT Hole Punching.

    L'host A invia una richiesta POST ad un server, e da li riesco a conoscere l'IP e la porta, a questo punto l'host A rimane in attesa di connessione tramite una ServerSocket.
    L'host B tramite telnet a quel IP con quella porta non riesce a stabilire una connessione con A, proprio perchè il NAT blocca le connessioni in entrata.
    Vorrei sfruttare la tecnica del NAT Hole Punching per poter stabilire una connessione A <---> B

    Qualcuno sa dirmi qualcosa sulla tecnica del NAT Hole Punching?

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.