Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    2

    Comunicazione client server in java

    Ciao ragazzi sono nuovo del forum e questo è il mio primo post aperto, sono certo che troverò in voi validi suggerimenti per imparare qualcosa in più sulla programmazione.
    il mio problema è il seguente: ho scritto (utilizzando eclipse) due classi una client e l'altra server per provare una prima forma di comunicazione. Se lancio le due classi da terminale sulla stessa macchina non ho alcun tipo di problema e i messaggi vengono ricevuti e inviati normalmente. Quando però o provato a lanciare il server su una macchina connessa ad internet e il client sul mio portatile non sono riuscito a raggiungere il server, ricevendo un timeout. Faccio notare che il client quando si avvia richiede l'indirizzo del server al quale collegarsi. Quando sto in locale metto 127.0.0.1 quando ho provato in internet invece metto l'indirizzo ip della macchina su cui ho lanciato il server.
    Di seguito vi riporto i codici delle due classi :
    Il Server è :
    codice:
    public class Server {
    	private ServerSocket server;
    	private Socket connessione;
    	private BufferedReader dalClient;
    	private PrintStream alClient;
    	private String name;
    
    	public static void main(String[] args) {
    		Server s = new Server("Server");
    		s.conversazione();
    	} 
    	public Server(String name) {
    		this.name = name;
    		try {
    			server = new ServerSocket(4000);
    			System.out.println("Server attivo");
    			connessione = server.accept();
    			dalClient = new BufferedReader(new InputStreamReader(connessione.getInputStream()));
    			alClient = new PrintStream(connessione.getOutputStream());
    		}
    		catch(IOException e) {
    			System.out.println(e);
    		}
    	} // Server()
     
    	public void conversazione() {
    		String messaggio = "";
    		BufferedReader t = new BufferedReader(new InputStreamReader(System.in));
    		try {
    			alClient.println("Connesso al server!");
    			while(!messaggio.equals("/logout")) {
    				messaggio = dalClient.readLine();
    				System.out.println(messaggio);
    				if(!messaggio.equals("/logout")) {
    					messaggio = t.readLine();
    					alClient.println(name+" scrive: "+messaggio);
    				}
    			} // while
    		}
    		catch(IOException e) {
    			System.out.println("Conversazione interrotta");
    		}
    	} // conversazione()
    }
    Il client invece :
    codice:
      
    public class Client {
    	private Socket connessione;
    	private BufferedReader dalServer;
    	private PrintStream alServer;
    	private String name;
     
    	public static void main(String[] args) {
    		Client c = new Client(args[0]);
    		c.conversazione();
    	}
    	public Client(String name) {
    		this.name = name;
    		BufferedReader t = new BufferedReader(new InputStreamReader(System.in));
    		try {
    			System.out.println("Inserire indirizzo server: ");
    			String indirizzo = t.readLine();
    			connessione = new Socket( indirizzo , 80);
    			dalServer = new BufferedReader(new InputStreamReader(connessione.getInputStream()));
    			alServer = new PrintStream(connessione.getOutputStream());
    		}
    		catch(IOException e) {
    			System.out.println(e);
    		}
    	} // Client()
     
    	public void conversazione() {
    		String messaggio = "";
    		BufferedReader t = new BufferedReader(new InputStreamReader(System.in));
    		try {
    			while(!messaggio.equals("quit")) {
    				messaggio = dalServer.readLine();
    				System.out.println(messaggio);
    				if(!messaggio.equals("/logout")) {
    					messaggio = t.readLine();
    					alServer.println(name+" scrive: "+messaggio);
    				}
    			} // while
    			connessione.close();
    		}
    		catch(IOException e) {
    			System.out.println("Conversazione interrotta");
    		}
    	} // conversazione()
    }

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Comunicazione client server in java

    Originariamente inviato da Buggy
    Quando però o provato a lanciare il server su una macchina connessa ad internet e il client sul mio portatile non sono riuscito a raggiungere il server
    Quando i due host non sono più solo su una rete "locale" ma sono su una rete più ampia (e internet è il caso standard), ci sono questioni di "rete" (non più di programmazione).
    Mi spiace ripetermi, ne avevo già parlato in questa discussione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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