porta per fare un server sul mio computer


0

Ho provato a fare un programma di chat con Java. riesco quando utilizzo l'ip di 127.0.0.1 per connettermi.

Socket socket = nuovo Socket ("127.0.0.1", 5005);

tutto ha funzionato benissimo sul mio computer e il programma ha funzionato anche quando provo a connettermi tra il mio computer e il mio leptop che utilizza lo stesso router. (L'ho fatto usando l'ip locale.) Quindi volevo connettere i computer che usano altri router usando l'ip esterno. quindi leggo sul web e capisco che devo deviare la mia porta attraverso il mio router. ho un router Siemens ADSL Sl2-141. ho rinunciato alla porta 5005 e il mio programma di chat continua a non funzionare. ottengo più volte l'errore di connessione rifiutata. mi sono perso qualcosa? Foratura della porta Siemens


ricontrollare l'indirizzo IP dell'host interno. Hai provato sia il tuo laptop che il tuo computer desktop come target ?. Utilizzi ulteriori (software) firewall?
Yankee,

NOTA: sebbene questa domanda sia stata migrata, non credo sia chiaro se si tratta di un problema di configurazione di rete o di un codice (listener / connessione che passa attraverso indirizzi IP corretti). Fino a quando non avremo ulteriori informazioni, potrebbe trattarsi di una frettolosa moderazione.
Grambot,

Risposte:


1

Innanzitutto, sembra che tu stia configurando il tuo codice per l'ascolto solo sull'host locale e non sull'indirizzo esterno. Utilizzare invece una connessione socket come questa: (come da questa guida )

EDIT (modificato come da discussione di commento sotto):

Socket socket = new Socket("PUBLIC_IP_ADDR",5005);

Dov'è il PUBLIC_IP_ADDRtuo indirizzo Internet che puoi trovare qui

Se non riesci ancora a ottenere una connessione, verifica che il programma sia disponibile e in ascolto ...

Guida al controllo della tua porta

1) Se non l'hai già fatto, consulta questa guida e conferma di aver completato tutti i passaggi.

2) Utilizzare questo strumento per confermare che la porta è effettivamente aperta.

Se la # 2 fallisce, la tua porta non è effettivamente aperta. Il PC che accetta la connessione è in ascolto attivo su 5005?

Finestre:

Start -> Run -> cmd
  netstat -an | find /i "5005"

Linux:

(From terminal)
  netstat -l | grep 5005

Se al suo interno non è presente "ASCOLTO", l'applicazione non è in ascolto delle connessioni. Ma non sospetto che questo sia il problema poiché puoi farlo su localhost.

Se il problema persiste, confermare che il firewall del sistema operativo è aperto.

Questo è tutto ciò a cui riesco a pensare in questo momento


il codice sopra è per il file client. nel server ho usato il codice che hai dato. lo strumento che mi hai dato mi dà una risposta positiva: Successo: riesco a vedere il tuo servizio su 77.126.189.65 sulla porta (5005) Il tuo ISP non sta bloccando la porta 5005, ho anche provato a controllare il cmd. questo faceva parte della risposta: TCP 0.0.0.0:5005 0.0.0.0.0 ASCOLTARE la parola 0.0.0.0.0 significa qualcosa?

0.0.0.0Significa semplicemente che è in ascolto su tutti gli IP (credo). Se il file client sta tentando di accedere a un servizio sulla porta 5005 127.0.0.1, tenterà di trovare il server sullo stesso computer dal quale ci si sta connettendo. Cambialo nel tuo indirizzo IP pubblico. Aggiornerò la risposta con i dettagli.
Grambot,

Scusa, vuoi dire che sei riuscito a connetterti? Oppure non sei ancora in grado di farlo? EDIT: Inoltre, poiché stai aprendo il tuo servizio pubblicamente, suggerirei di nascondere l'IP nel frattempo nel caso in cui persone anonime si imbattano in questa pagina e inizino a tentare di connettersi a te.
Grambot,

sono in grado di connettermi quando utilizzo 127.0.0.1. Io non riesco a connettermi quando uso il mio IP esterno per il collegamento

Puoi modificare la tua domanda per includere anche il codice con cui hai impostato il listener di socket?
Grambot,

0

Cosa ha detto @Brian. Il tuo indirizzo interno è probabilmente errato, se il programma non è in esecuzione. Prova a sostituire "127.0.0.1" con l'indirizzo interno ("10.qualunque") e quindi eseguilo ancora dallo stesso computer. Se funziona, solo allora dovresti provarlo da un altro computer. Se è bloccato da un altro computer sulla stessa sottorete, è probabile che tu abbia un firewall software ("Windows Defender" o qualcosa del genere) che blocca le connessioni esterne.

Il problema dell'ambito permane ancora: se hai bisogno di aiuto per configurare il tuo router, Google e quindi superuser.com sono i posti da chiedere. Se hai bisogno di aiuto con la programmazione, questo è lo scopo di questo sito.


sono riuscito a eseguire il programma usando l'ip interno (10.0.0.3 invece di 127.0.0.1). ora
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.