Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello
AMD ha aggiornato l'offerta di CPU HEDT con i Ryzen Threadripper 9000 basati su architettura Zen 5. In questo articolo vediamo come si comportano i modelli con 64 e 32 core 9980X e 9970X. Venduti allo stesso prezzo dei predecessori e compatibili con il medesimo socket, le nuove proposte si candidano a essere ottimi compagni per chi è in cerca di potenza dei calcolo e tante linee PCI Express per workstation grafiche e destinate all'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-12-2011, 13:48   #1
UpdatedMind
Member
 
L'Avatar di UpdatedMind
 
Iscritto dal: Mar 2010
Messaggi: 60
[Java] Socket e ip

Salve a tutti, sto riscontrando un problema nella creazione di un programma

Il programma ha per base una chat di solo testo, gestita in maniera alquanto semplice. Ogni Postazione fa sia da client che da server per l'invio e ricezione(sempre in ascolto) di nuovi messaggi.

Il mio problema è il seguente: La connessione avviene Ip - Ip con una porta scelta da me. Il programma funziona correttamente in locale, e in remoto con l'aiuto di un qualsiasi programma di reti remote come hamachi. Nel momento in cui cerco di farli comunicare direttamente attraverso gli ip... non c'è risposta.
Non penso sia un problema di firewall in quanto l'ho testato anche disattivandolo. Molto probabilmente sbaglio io qualcosa concettualmente.. help

(Riassumendo, il programma è scritto correttamente in quanto localmente e in remoto attraverso gli ip di hamachi invio e ricevo senza problemi... mentre senza hamachi, con gli ip veri e propri... niente )

grazie in anticipo
UpdatedMind è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 14:24   #2
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Dipende che tipo di ip parli.. se sei in una lan dovrebbe comunque funzionare, ma se invece cerchi di contattare un host fuori dalla tua lan la situazione diventa più complicata.

Com'è configurata la tua rete (routers, ecc... )e quella della macchina che cerchi di contattare?
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 14:38   #3
UpdatedMind
Member
 
L'Avatar di UpdatedMind
 
Iscritto dal: Mar 2010
Messaggi: 60
Quote:
Originariamente inviato da clockover Guarda i messaggi
Dipende che tipo di ip parli.. se sei in una lan dovrebbe comunque funzionare, ma se invece cerchi di contattare un host fuori dalla tua lan la situazione diventa più complicata.

Com'è configurata la tua rete (routers, ecc... )e quella della macchina che cerchi di contattare?
Sì, infatti in lan funziona tranquillamente. Localmente non ho alcun problema.

Le due macchine comunicanti dovrebbero essere due pc comunissimi. Quindi si presume che ognuno di loro sia collegato ad un router.

PC#1 - router - internet - router - PC#2

In che modo dovrei instaurare una connessione funzionante? Come posso far avvenire uno scambio dati?
UpdatedMind è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 14:49   #4
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quando un pc è dietro un router allora il pc è "nattato". Hai quindi 2 alternative

1) imposti il port forwarding del router in modo che le connessioni TCP o UDP su una certa porta vengano inoltrate al pc dove hai la chat. Metodo bruttissimo e poco pratico
2) ti crei un semplice server che fa solo da server. Questo lo metti dove ti pare avendo sempre i dovuti accorgimenti dei computer nattati (quindi port forwarding se sei dietro un router). I client ti fanno solo da client e si connettono al server e la loro comunicazione avviene attraverso di esso.

quindi

PC1 --> router --> ( internet - server - internet ) <-- router <-- PC2

non so se sono riuscito a spiegarmi bene
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 14:52   #5
Mettiu_
Member
 
L'Avatar di Mettiu_
 
Iscritto dal: Jul 2011
Messaggi: 246
Come presagito da clockover, la tua situazione è più complessa perchè i due pc, essendo collegati tramite router (che fa da NAT), non sono raggiungibili dall'esterno della rete di cui fanno parte. I due pc, per parlarsi in internet direttamente devono avere degli ip pubblici che, nel tuo caso, hanno solo i router. Quindi, visto che mi pare di capire che entrambi gli host devono fungere da server, hai due possibilità:
- entrambi i PC hanno IP pubblici (strada non molto percorribile);
- entrambi i router vengono configurati per fare port-forwarding della porta su cui la tua applicazione lavora.

EDIT: ops, scrivevamo contemporaneamente :-P
__________________
Non c'è cosa peggiore nella vita di un programmatore di un errore che si presenta solo ogni tanto.

CONCLUSO POSITIVAMENTE CON: oldfield
Mettiu_ è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 14:53   #6
UpdatedMind
Member
 
L'Avatar di UpdatedMind
 
Iscritto dal: Mar 2010
Messaggi: 60
Quote:
Originariamente inviato da clockover Guarda i messaggi
Quando un pc è dietro un router allora il pc è "nattato". Hai quindi 2 alternative

1) imposti il port forwarding del router in modo che le connessioni TCP o UDP su una certa porta vengano inoltrate al pc dove hai la chat. Metodo bruttissimo e poco pratico
2) ti crei un semplice server che fa solo da server. Questo lo metti dove ti pare avendo sempre i dovuti accorgimenti dei computer nattati (quindi port forwarding se sei dietro un router). I client ti fanno solo da client e si connettono al server e la loro comunicazione avviene attraverso di esso.

quindi

PC1 --> router --> ( internet - server - internet ) <-- router <-- PC2

non so se sono riuscito a spiegarmi bene
Ho ben capito dal punto di vista teorico e ti ringrazio per la conferma ^ ^

Il fatto è che il tipo di programma creato, volevo farlo funzionare sia da client che da server. Ma che segua la tua o questa strada c'è sempre il problema della connessione "nattata".

Programmo in java da relativamente poco... e possibilmente mi mancano le basi per poter implementare questo passaggio. Mi servirebbe qualche esempio di codice o di indicazioni sui comandi da usare
UpdatedMind è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 14:55   #7
UpdatedMind
Member
 
L'Avatar di UpdatedMind
 
Iscritto dal: Mar 2010
Messaggi: 60
Quote:
Originariamente inviato da Mettiu_ Guarda i messaggi
Come presagito da clockover, la tua situazione è più complessa perchè i due pc, essendo collegati tramite router (che fa da NAT), non sono raggiungibili dall'esterno della rete di cui fanno parte. I due pc, per parlarsi in internet direttamente devono avere degli ip pubblici che, nel tuo caso, hanno solo i router. Quindi, visto che mi pare di capire che entrambi gli host devono fungere da server, hai due possibilità:
- entrambi i PC hanno IP pubblici (strada non molto percorribile);
- entrambi i router vengono configurati per fare port-forwarding della porta su cui la tua applicazione lavora.

EDIT: ops, scrivevamo contemporaneamente :-P
Esatto.. i client fungono anche da server

Da quel che ho capito dovrei implementare il meccanismo che permetta di inoltrare al pc in questione il messaggio, passando dal suo router e instradandolo correttamente.... Ma come ho già risposto.. mi mancano le basi per questo tipo di operazione.. qualche consiglio?
UpdatedMind è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 15:09   #8
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Se capisci questo semplice esempio sono sicuro che sarà molto più semplice di come l'hai implementata.

1) Server
il server sta dove ti pare, anche dietro un router quindi nattato. Accetta connessioni dall'esterno mediante dei thread
2) Client
questi possono stare anche sottoterra, basta che c'è una rete. Ognuno ha un identificatore univoco. Ad esempio come messenger sono identificati con un indirizzo mail

il client si connette al server, il quale vi rimane in contatto mediante una connessione TCP/IP e sta li in attesa
l'altro client fa la stessa cosa

quando io scrivo un messaggio a te il messaggio passa attraverso il server il quale ti inoltra il messaggio. E questa è la tua chat funzionante ovunque, basta semplicemente sapere l'indirizzo del server e solo del server.


Se vuoi rimanere come stai devi operare su entrambi i routers.
Entri nella pagina di configurazione del router e trovi la pagina relativa al port forwarding (inoltro di porta). Scegli il tipo di connessione (TCP o UDP), il numero di porta con la quale dialoghi e l'indirizzo ip del computer. Questa operazione va fatta su entrambi i routers non dimenticare.
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 15:18   #9
UpdatedMind
Member
 
L'Avatar di UpdatedMind
 
Iscritto dal: Mar 2010
Messaggi: 60
Quote:
Originariamente inviato da clockover Guarda i messaggi
Se capisci questo semplice esempio sono sicuro che sarà molto più semplice di come l'hai implementata.

1) Server
il server sta dove ti pare, anche dietro un router quindi nattato. Accetta connessioni dall'esterno mediante dei thread
2) Client
questi possono stare anche sottoterra, basta che c'è una rete. Ognuno ha un identificatore univoco. Ad esempio come messenger sono identificati con un indirizzo mail

il client si connette al server, il quale vi rimane in contatto mediante una connessione TCP/IP e sta li in attesa
l'altro client fa la stessa cosa

quando io scrivo un messaggio a te il messaggio passa attraverso il server il quale ti inoltra il messaggio. E questa è la tua chat funzionante ovunque, basta semplicemente sapere l'indirizzo del server e solo del server.


Se vuoi rimanere come stai devi operare su entrambi i routers.
Entri nella pagina di configurazione del router e trovi la pagina relativa al port forwarding (inoltro di porta). Scegli il tipo di connessione (TCP o UDP), il numero di porta con la quale dialoghi e l'indirizzo ip del computer. Questa operazione va fatta su entrambi i routers non dimenticare.
Ammettiamo di voler implementare la tua scelta (n°1).
Il server lo posiziono nel mio pc, ergo nattato a causa della presenza del router. Un client esterno (in questo caso l'altro pc) per poter accedere al mio server non avrà lo stesso problema di connessione? Il mio problema è solo questo.. fare in modo che il messaggio parta da un pc e arrivi ad un altro (che arrivi ad un server o ad un client-server) ovvero superare il problema del nat


edit: da quel che ho capito, pensandoci... il problema non è legato al java o ad una qualche libreria con comandi da utilizzare, bensì ad una configurazione del router... no?

Ultima modifica di UpdatedMind : 24-12-2011 alle 15:23.
UpdatedMind è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 15:27   #10
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Si hai lo stesso problema (lo avevo già menzionato infatti) ma lo risolvi per il server con gli stessi accorgimenti per i computer nattati del mio ultimo post. Cioè abilitando il port forwarding per il server, però solo per il server. I client non avranno di questo problema
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 15:34   #11
UpdatedMind
Member
 
L'Avatar di UpdatedMind
 
Iscritto dal: Mar 2010
Messaggi: 60
Quote:
Originariamente inviato da clockover Guarda i messaggi
Si hai lo stesso problema (lo avevo già menzionato infatti) ma lo risolvi per il server con gli stessi accorgimenti per i computer nattati del mio ultimo post. Cioè abilitando il port forwarding per il server, però solo per il server. I client non avranno di questo problema
Certamente... credo di aver afferrato il problema con chiarezza. Grazie

Ergo, se volessi realizzare questa piccola chat dovrei comunque affidarmi necessariamente ad un programma che generi una rete locale come hamachi... (in quel caso tutto funziona correttamente...) che evidentemente bypassa il problema. A meno che non decidessi di creare un server e di modificare le impostazioni del mio router. Tutti necessiterebbero comunque del mio server attivo... ma non avrebbero localmente problemi di settaggi.
Non posso creare con facilità un'operazione di server-client se non con questa "spesa".
Correggimi se sbaglio. Grazie ancora per l'aiuto.

edit: BUON NATALE XD

Ultima modifica di UpdatedMind : 24-12-2011 alle 15:43.
UpdatedMind è offline   Rispondi citando il messaggio o parte di esso
Old 24-12-2011, 16:03   #12
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
In parole povere è come hai detto tu si

Buone Feste
clockover è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
Hisense M2 Pro: dove lo metti, sta. Mini proiettore laser 4K per il cinema ovunque Hisense M2 Pro: dove lo metti, sta. Mini proiett...
SpaceX Starship: Ship 37 ha eseguito due...
Sharkoon punta sui case a basso costo, m...
La tua rete Wi-Fi fa pena? Questi FRITZ!...
Amazon, un weekend di fuoco per gli scon...
Ancora 3 smartwatch Amazfit in forte sco...
Sharkoon A60 RGB: dissipatore ad aria du...
HONOR 400 Pro a prezzo bomba su Amazon: ...
Offerte da non perdere: robot aspirapolv...
Apple Watch e Galaxy Watch ai minimi sto...
Il rover NASA Perseverance ha ''raccolto...
NASA e ISRO hanno lanciato il satellite ...
Switch 2 ha venduto 5,82 milioni di cons...
Assassin's Creed Black Flag Remake: le m...
Cosa ci fa una Xiaomi SU7 Ultra alle por...
Promo AliExpress Choice Day: prezzi stra...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v