Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Applicazione client-server
Forum - Java - Applicazione client-server

Avatar
simoo88 (Normal User)
Newbie


Messaggi: 12
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 21:50
Sabato, 18/07/2009
buonasera,
vi scrivo per porvi un quesito e vedere se qualcuno più esperto di me può aiutarmi.
Ho creato un server e un client che comunicano grazie ad RMI,naturalmente il client conosce l'indirizzo in rete del server (grazie al servizio no-ip).Diciamo che utilizzo il server per tutto il tempo che decido di rimanere loggato,quando mi stanco faccio una logout ed esco.Tutto ciò viene tenuto in memoria da un database nel mio server.Fino qui nessun problema.....Quello che non riesco a fare e che mi servirebbe moltissimo è:
ogni tot di tempo il SERVER deve inviare dei messaggi al CLIENT che è loggato...quindi al momento della login del client dovrei tenere traccia dell'indirizzo  ip per potergli parlare ogni tot di tempo.
Come posso fare in java a fare tutto ciò???come faccio al momento della login a ricavare l'indirizzo ip del client (naturalmente non il mio solito 192.0.0.2  8-) ).
Saluti e grazie.

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 22:20
Sabato, 18/07/2009
Testo quotato

Postato originariamente da simoo88:

buonasera,
vi scrivo per porvi un quesito e vedere se qualcuno più esperto di me può aiutarmi.
Ho creato un server e un client che comunicano grazie ad RMI,naturalmente il client conosce l'indirizzo in rete del server (grazie al servizio no-ip).Diciamo che utilizzo il server per tutto il tempo che decido di rimanere loggato,quando mi stanco faccio una logout ed esco.Tutto ciò viene tenuto in memoria da un database nel mio server.Fino qui nessun problema.....Quello che non riesco a fare e che mi servirebbe moltissimo è:
ogni tot di tempo il SERVER deve inviare dei messaggi al CLIENT che è loggato...quindi al momento della login del client dovrei tenere traccia dell'indirizzo  ip per potergli parlare ogni tot di tempo.
Come posso fare in java a fare tutto ciò???come faccio al momento della login a ricavare l'indirizzo ip del client (naturalmente non il mio solito 192.0.0.2  8-) ).
Saluti e grazie.



scusa, quando il client chiama il metodo che il server espone tramite rmi gli passa anche l'ip...tanto deve farlo solamente una volta, cioè quando si logga.


ps:  è per il progetto di ing del sw??? :D

PM Quote
Avatar
simoo88 (Normal User)
Newbie


Messaggi: 12
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 23:12
Sabato, 18/07/2009
se sono nel server in che modo riesco a leggere l'ip del client che ha richiamato il metodo che vuole utilizzare?

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 12:47
Domenica, 19/07/2009
un metodo rmi viene chiamato dal client giusto?
basta che tra i parametri passati in quel metodo ci aggiungi l'ip

per esempio:

public void login(String username. String password, String ip);

PM Quote
Avatar
simoo88 (Normal User)
Newbie


Messaggi: 12
Iscritto: 15/05/2009

Segnala al moderatore
Postato alle 18:28
Domenica, 19/07/2009
ok fino a quì va bene ;) ma è proprio ora che arriva il bello...
come faccio dal mio client a leggere in con che ip sono collegato alla rete?
ho provato con....
import java.net.*;
import java.io.*;
import java.applet.*;

public class GetClientIP extends Applet {
  public void init() {
    try {
     InetAddress thisIp =
        InetAddress.getLocalHost();
     System.out.println("IP:"+thisIp.getHostAddress());
     }
    catch(Exception e) {
     e.printStackTrace();
     }
    }
}




ma mi resituisce l'indirizzo ip della mia rete interna....ovvero in qst caso...
192.168.0.2
è solo che non posso passare ad un server in rete questo ip..non troverà mai il mio pc ma mi serve l'ip pubblico...penso di essere stato chiaro ora ;)
Grazie lorenzo ***** :rofl:

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 20:52
Domenica, 19/07/2009
Codice sorgente - presumibilmente Java

  1. public String getHTML(String addr) throws Exception {
  2.   URL url = new URL(addr);
  3.   String buf = "";
  4.   BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
  5.   String line;
  6.   while ((line = in.readLine())!=null) {
  7.     buf += line+"\n";
  8.   }
  9.   return buf;
  10. }



connettiti a questo indirizzo e dovresti ottenere solo la stringa del tuo ip
http://www.whatismyip.com/automation/n09230945.asp

PM Quote