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();
}
}
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();
}
*/
}
}
Sto cercando di far funzionare solo il metodo prova ma con scarsi risultati!