Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet!
Il REDMAGIC Astra Gaming Tablet rappresenta una rivoluzione nel gaming portatile, combinando un display OLED da 9,06 pollici a 165Hz con il potente Snapdragon 8 Elite e un innovativo sistema di raffreddamento Liquid Metal 2.0 in un form factor compatto da 370 grammi. Si posiziona come il tablet gaming più completo della categoria, offrendo un'esperienza di gioco senza compromessi in mobilità.
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2
Dopo un mese di utilizzo intensivo e l'analisi di oltre 50 scatti, l'articolo offre una panoramica approfondita di Nintendo Switch 2. Vengono esaminate le caratteristiche che la definiscono, con un focus sulle nuove funzionalità e un riepilogo dettagliato delle specifiche tecniche che ne determinano le prestazioni
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


Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Gigabyte Aero X16 Copilot+ PC: tanta potenza non solo per l'IA Gigabyte Aero X16 Copilot+ PC: tanta potenza non...
vivo X200 FE: il top di gamma si è fatto tascabile? vivo X200 FE: il top di gamma si è fatto ...
2 minuti: il tempo per scorrere le 25 of...
Mini LED TCL: confronto tra le migliori ...
Robot aspirapolvere: questi sono i più a...
Portatile tuttofare Lenovo Core i5/16GB ...
Scende a 99€ il tablet 11" 2,4K con...
Amiga: quali erano i 10 giochi più belli
Driver più sicuri: Microsoft alza...
Ego Power+ ha la giusta accoppiata per l...
Scompiglio nei listini Amazon: prezzi im...
Sotto i 105€ il robot Lefant che lava, a...
Mini proiettori smart in offerta: uno co...
Smartwatch Amazfit in offerta: Balance o...
Windows XP ritorna: ecco come usarlo sub...
Arrow Lake in saldo: Intel taglia i prez...
LG C4 da 55'' a 899€ è il top per...
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: 04:32.


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