Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    6

    problemi con applicazione client-server

    sto cercando di creare un'applicazione client-server implementata ovviamente in multithread; il passaggio dei dati tra client e server li ho fatti utilizzando i socket e gli oggetti ObjectInputStream e ObjectOutputStream; ho un problema sul server: quando inserisco un oggetto di input, in "teoria" il server dovrebbe fermarsi ed aspettare l'invio dei dati da parte del client tramite ObjectOutputStream.Il problema è che il server al primo oggetto di input si ferma e aspetta il client, poi appena il client invia i dati la prima volta il server va in loop contiuno e nn si ferma più.naturalmente il server è strutturato con all'inizio un ciclo while mi permette di far ricominciare il server ogni volta che il client si riporta al menu principale.
    Se ci fosse qualche buon anima che mi volesse aiutare, lo prego di lasciarmi un msg, almeno metto on-line tutta la classe del server.
    ciao e grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    A quale linguaggio di programmazione fai riferimento?

    Dato che sei nuovo, leggi il Regolamento per conoscere tutte le norme per partecipare in modo corretto a quest'area del forum.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Bisognerebbe vedere il codice... a occhio direi che invece di tornare all'invocazione del metodo readObject() fai tornare il server alla accept()...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    6

    prima parte del codice del server

    codice:
    import java.net.*;
    import java.io.*;
    import java.sql.*;
    import java.lang.*;
    
    class serverChat implements Runnable{
        
    String data = "jdbc:odbc:archivio";
    String user;
    private Socket connection;
    private Thread me;
    public serverChat (Socket s){
        connection = s;
        me=new Thread(this);
        me.start();
        System.out.println(connection);
    }
    
    public void run(){    
    try {
        ObjectInputStream is;
        ObjectOutputStream os; 
    boolean continua=true;   
    while (continua==true) {    
        try{
                System.out.println("Inizio");
         is=new ObjectInputStream(connection.getInputStream());
                controllore = (int[])is.readObject();
                is.close();
                System.out.println(controllore[0]);
                //System.out.println("");
                System.out.println("Iniziato");
                
        }
        catch (Exception e){};
                switch (controllore[0]){
                 case 1: 
                     boolean esci[] = new boolean[1];
                     esci[0]=false;
                     try{
                         System.out.println("eccoci al case 1");
                            System.out.println(esci[0]);
                          boolean[] esciLogin = new boolean[1];
                            esciLogin[0]=false;
                            while (esciLogin[0]!=true){
                              is = new ObjectInputStream(connection.getInputStream());
                                esci=(boolean[])is.readObject();
                                is.close();
                                if (esci[0]!=true){
                                    is = new ObjectInputStream(connection.getInputStream());
                                    UserPwd = (String[])is.readObject();
                                    System.out.println("UserPwd: " + UserPwd[0] + " "+ UserPwd[1] + " " + UserPwd[2]);
                                    if (ControllaPWD(UserPwd)==true){
                                        confrontoPWD[0]=true;
                                        esciLogin[0]=true;
                                        user=UserPwd[0];
                                    }
                                    else
                                        confrontoPWD[0]=false;
                                    os = new ObjectOutputStream(connection.getOutputStream());
                                    os.writeObject(confrontoPWD);
                                }else
                                    esciLogin[0]=true;
                                System.out.println("");
                            }
                            
    
    }

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.