Questa è la parte server!
codice:public class SimpleMaviServer implements Runnable { private ServerSocket server = null; private Thread thread = null; private MaviServerThread client = null; private boolean quit = false; //costruttore che mi legge la porta e mi //crea connessione con il client public SimpleMaviServer(int port) { try { //stampo che sta avvenendo la connessione alla porta System.out.println("Binding to port " + port + ", please wait ..."); //creo un serversocket server = new ServerSocket(port); //stampo l'avvio del server System.out.println("Server started: " + server); //avvio il serversocket start(); } catch (IOException ioe) { System.out.println(ioe); } } public void run() { //avvio un ciclo che non finisce finchè non viene digitato quit while (quit == false) { try { System.out.println("Waiting for a client ..."); //richiamo il metodo addThread accettando il serversocket addThread(server.accept()); } catch (IOException ie) { System.out.println("Acceptance Error: " + ie); } } //System.out.println("esco da run"); } public void addThread(Socket socket) { try { System.out.println("Client accepted: " + socket); //creo un oggetto della classe MaviServerThread client = new MaviServerThread(this, socket); client.open(); client.start(); } catch (IOException ex) { Logger.getLogger(SimpleMaviServer.class.getName()).log(Level.SEVERE, null, ex); } } public void start() { /* no change */ } public void stop() { /* no change */ } public static void main(String args[]) { //creo oggetto della classe SimpleMaviServer SimpleMaviServer s = new SimpleMaviServer(2996); //richiamo il metodo run della classe SimpleMaviServer s.run(); } }Sto cercando di far funzionare solo il metodo prova ma con scarsi risultati!codice:package Server; import java.net.*; import java.io.*; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; import server.JavaConnectDb; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.io.Serializable; import negozio.Rquery; public class MaviServerThread extends Thread implements Serializable { private Socket socket = null; private SimpleMaviServer server = null; private int ID = -1; // private DataInputStream streamIn = null; private Scanner scannerIn; private ObjectOutputStream printOut; private String received = ""; private String cod_filiale; private static JavaConnectDb jcd = new JavaConnectDb("sweethome","root","kobraman94"); public MaviServerThread(SimpleMaviServer _server, Socket _socket) { server = _server; socket = _socket; ID = socket.getPort(); } @Override public void run() { try { System.out.println("Server Thread " + ID + " running."); scannerIn = new Scanner(socket.getInputStream()); printOut = new ObjectOutputStream(socket.getOutputStream()); boolean connessione = jcd.connetti(); //gestisco il caso in cui non avvenga la connessione if (connessione == false) { System.out.println("ERRORE: errore durante la connessione"); System.out.println(jcd.getErrore()); } connessione = jcd.connetti(); while (!received.equals("QUIT")) { received = scannerIn.nextLine(); String comando=""; String contenuto=""; if (received.contains("|")) { String[] parts = received.split("|"); comando = received.substring(0, received.indexOf('|')); contenuto = received.substring(received.indexOf('|')+1); } switch(comando) { case "cod_fil": cod_filiale = contenuto; System.out.println("codice filiale:" + cod_filiale); break; case "listComm": printOut.writeObject(listComm()); break; case "gestMag": printOut.writeObject(gestMag()); case "prova":printOut.writeObject(gestMag()); break; } System.out.println("client " + ID + " says: " + received); //System.out.println("client " + ID + " command: " + comando); //System.out.println("client " + ID + " content: " + contenuto); //printOut.println("your command: " + comando); //printOut.println("your content: " + contenuto); } socket.close(); } catch (IOException ex) { Logger.getLogger(MaviServerThread.class.getName()).log(Level.SEVERE, null, ex); } } public ResultSet gestMag() { String sql = "select * from prodotti_filiale where cod_filiale='"+ cod_filiale +"'"; PreparedStatement pst = null; ResultSet rs = null; try { pst = JavaConnectDb.db.prepareStatement(sql); rs = pst.executeQuery(); } catch(Exception ex) {} return rs; } public ResultSet listComm() { String id_tipo = "1"; String sql = "select * from personale p, filiale f, tipo_personale t where p.cod_filiale=f.cod_filiale and p.id_tipo_personale=t.id_tipo and p.cod_filiale="+ cod_filiale+" and t.id_tipo="+ id_tipo; PreparedStatement pst = null; ResultSet rs = null; Rquery res=new Rquery(rs); try { pst = JavaConnectDb.db.prepareStatement(sql); rs = pst.executeQuery(); } catch(Exception e) {} return rs; } public ResultSet prova() { String sql="select * from sweethome.prodotti"; PreparedStatement pst = null; ResultSet rs = null; try { pst = JavaConnectDb.db.prepareStatement(sql); rs = pst.executeQuery(); } catch(Exception e) {} return rs; } public void open() throws IOException { // streamIn = new DataInputStream(new BufferedInputStream(socket.getInputStream())); } public void close() throws IOException { /* if (socket != null) { socket.close(); } if (streamIn != null) { streamIn.close(); } */ } }

Rispondi quotando
