Ajouter un commentaire

Niroken

Hello,

Quote:

au niveau System.out.println(req) il affiche la liste mé dans la jliste il affiche rien.

Dans ce cas c est autre chose, si tu récupères les données quand tu les affiches, le client a bien fait son boulot, c'est au niveau de la couche graphique que ca ne va pas.

Bon je te passe la un code qui fonctionne de mon coté, j'ai réimplémenté le serveur et le client en gros quand tu charges ta fenetre client et que le serveur est lancé... le serveur envoit n fois "Pouet" puis il incrémente n de 1 comme ca quand tu cliques sur refresh, tu affiches un élément de plus à chaque fois.

Pour mettre ta partie base de données il faudra que tu modifies légérement la méthode sendDatasToClient()

Code Serveur :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;


public class ProgramServer {

	public static int sNbBoucle = 4;
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new ProgramServer().launchServer();
	}
	
	public void launchServer() {
    	try {
			ServerSocket vServerSocket = new ServerSocket(3500);
			while(true) {
				final Socket vSocket = vServerSocket.accept();
				
				Thread vThread = new Thread() {
					
					public void run() {
						try {
							sendDatasToClient(vSocket);
						} catch (Exception e) {
							e.printStackTrace();
						}
					}
					
				};
				
				vThread.start();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
    }
    
    private void sendDatasToClient(Socket pSocket) throws Exception {
    	// A mettre ici l appel pour la base de donnees.
    	PrintWriter vOutputPrintWriter = new PrintWriter(pSocket.getOutputStream(),true);; 
        BufferedReader vInputBufferedReader = new BufferedReader(new InputStreamReader(pSocket.getInputStream()));
        String vDatasFromClient = vInputBufferedReader.readLine();
        
        for (int i = 0; i < sNbBoucle; i++) { 
        	vOutputPrintWriter.write(i + "Pouet\r\n");
        	vOutputPrintWriter.flush();
        }
        
        vOutputPrintWriter.flush();
        pSocket.close();
        sNbBoucle++;
    }

}

Code Client :

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;

import net.ProcessClient;


public class ProgramClient extends JFrame {
	
	private JList mList;

	public ProgramClient() {
		setSize(200, 200); 
        setLayout(new FlowLayout()); 
        
        mList = new JList(); 
                
        JButton vButton = new JButton("Refresh"); 
        vButton.addActionListener(new ActionListener() { 

            public void actionPerformed(ActionEvent pE) { 
                displayDatasFromServer(); 
            } 
            
        });
        
        addWindowListener(new WindowAdapter() {
        	
        	public void windowOpened(WindowEvent pEvent) {
        		displayDatasFromServer(); 
        	}
        	
        });
        
        add(mList); 
        add(vButton); 
        
        setVisible(true); 
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
	}

	public void displayDatasFromServer() {
		Thread vThread = new Thread() { 
            
            public void run () { 
                try { 
                	String req1="select login from authentification where state='c'"; 
                    Socket sClient =new Socket("localhost",3500); 
                    PrintWriter out=new PrintWriter(sClient.getOutputStream(),true); 
                    out.write(req1+ "\r\n"); 
                    out.flush(); 
                    
                    BufferedReader in=new BufferedReader(new InputStreamReader(sClient.getInputStream())); 
                    String req=new String(); 
                    DefaultListModel dlm=new DefaultListModel(); 
                    while((req=in.readLine()) != null) {
                        dlm.addElement(req);
                    } 
                    System.out.println(dlm.getSize());
                    sClient.close(); 
                	mList.setModel(dlm); 
                } catch (Exception e) { 
                    e.printStackTrace(); 
                }                
            } 
            
        }; 
        vThread.start(); 
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new ProgramClient();
	}

}

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 III  III      J  DDD    AA  
I I J D D A A
I I J D D AAAA
I I J J D D A A
III III JJJ DDD A A