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

    Problema con Socket TCP/IP

    Salve ragazzi, sto implementando un applicazione di tipo server / client.Ma ho incontrato una difficoltà, vi spiego.

    Ho sviluppato il server ( Java ) ,dove gira un demone sulla porta 744 in attesa di connessioni su TCP, quindi un ServerSocket.

    Ho implementato ( Java da far girare su Android) il client, classe Socket ecc ecc, mi collego sull'IP del server , su porta 744 e tutto funziona a dovere.

    La connessione riesce ovviamente da Lan, ma anche portando il tel con me da qualsiasi altra rete MA SOLO su WIFI, se passo da Wifi a 3G il tutto smette di funzionare, non riesco più a stabilire una connessione con la Socket.

    Chiedo un vostro aiuto, ho iniziato a capire che gli operatori Nattano la connessione per risparmiare sugli IP pubblici , però ora sono ad un vincolo cieco, come procedere ? Mi chiedo , perché WhatsApp (che ho capito funzionare con Socket) funziona ?

    Qualcuno ha già affrontato una situazione del genere ? Come si può risolvere ?

    Grazie a tutti , buon pranzo !

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Fossi in te proverei a cambiare porta.
    Le porte "libere" sono quelle maggiori di 1024. Al di sotto potrebbero essere effettivamente filtrate o riservate.


    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

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giovanni92 Visualizza il messaggio
    se passo da Wifi a 3G il tutto smette di funzionare, non riesco più a stabilire una connessione con la Socket.
    Se usi la rete dati mobile (3G, 4G ecc.. o quello che è) vuol dire innanzitutto che la connessione non è più stabilita dall'interno della tua rete locale ma dall'esterno ovvero da internet.
    E questo ha 2 risvolti importanti: a) l'indirizzo IP da usare è quello "pubblico" assegnato (dal provider) alla connessione internet usata dalla tua macchina server e b) devi configurare tutto l'hardware/software che è sotto il tuo controllo (router, firewall hw e/o sw su PC) affinché il tuo ServerSocket sia raggiungibile dall'esterno della tua rete locale, appunto da internet.

    Hai già verificato e applicato questi due aspetti?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Ciao , grazie per la risposta, domani proverò con una porta superiore alla 1024 e vediamo che succede. Grazie.

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se usi la rete dati mobile (3G, 4G ecc.. o quello che è) vuol dire innanzitutto che la connessione non è più stabilita dall'interno della tua rete locale ma dall'esterno ovvero da internet.
    Tutto già verificato, infatti come ho detto da qualsiasi altra rete io provi ad effettuare la connessione ( intendevo ad esempio università o casa di amici) il tutto funziona, quindi ho configurato correttamente router,firewall e gestione dell'IP tramite DDns.
    Il problema è il 3g :S

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giovanni92 Visualizza il messaggio
    Tutto già verificato
    Perfetto, era giusto solo per chiarire.

    Quote Originariamente inviata da giovanni92 Visualizza il messaggio
    Il problema è il 3g :S
    La porta allora potrebbe essere un primo problema, come già indicato da LeleFT. Usa sempre preferibilmente porte > 1024.
    Un'altra prova che puoi fare è questa: invece di esporre la tua applicazione Java, fai esporre su quella stessa porta un piccolo web server HTTP. Va bene qualunque cosa: un Apache HTTP server, un Tomcat o anche server minimali come ad esempio Mongoose o altro. L'importante è che faccia vedere una paginetta HTML o qualcos'altro. Poi prova ad accederci con il browser dello smartphone.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Mmmm , cosi facendo vedrò se su sulla 744 o (1024+n) lo smartphone riesce a raggiungerla, ottima idea! Allora domani provo queste varie soluzioni e vi posto i risultati, grazie =) .

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 © 2026 vBulletin Solutions, Inc. All rights reserved.