Ho riscritto tutto cosi:
Modello:
codice:
ublic class Busta implements Serializable{
private static final long serialVersionUID = -6812221116817885840L;
String Nbusta, Nome;
public Busta(String codice, String nome) {
this.Nbusta = codice;
this.Nome = nome;
}
public String getNbusta() {
return Nbusta;
}
public void setNbusta(String nbusta) {
this.Nbusta = nbusta;
}
public String getNome() {
return Nome;
}
public void setNome(String nome) {
this.Nome = nome;
}
}
Server:
codice:
public class Server {
static ArrayList<Busta> prova;
public static void main(String srgs[]) {
int count = 0;
initList();
//hard code to use port 8080
try (ServerSocket serverSocket = new ServerSocket(6789)) {
System.out.println("I'm waiting here: " + serverSocket.getLocalPort());
while (true) {
try {
Socket socket = serverSocket.accept();
count++;
System.out.println("#" + count + " from "
+ socket.getInetAddress() + ":"
+ socket.getPort());
HostThread myHostThread = new HostThread(socket, count);
myHostThread.start();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
private static class HostThread extends Thread{
private Socket hostThreadSocket;
int cnt;
HostThread(Socket socket, int c){
hostThreadSocket = socket;
cnt = c;
}
@Override
public void run() {
OutputStream outputStream;
try {
outputStream = hostThreadSocket.getOutputStream();
try (ObjectOutputStream objectOutputStream =
new ObjectOutputStream(outputStream)) {
objectOutputStream.writeObject(prova);
}
} catch (IOException ex) {
System.out.println(ex.toString());
}finally{
try {
hostThreadSocket.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
}
private static void initList(){
try
{
prova = new ArrayList<Busta>();
String DATABASE_URL = "jdbc:ucanaccess:///OneDrive//Programmazione//Android//dati.mdb;password=gmpa;memory=false";
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn = DriverManager.getConnection(DATABASE_URL);
System.out.println(conn);
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM [tabripa]");
while (rs.next()) {
prova.add( new Busta(rs.getString("Nbusta").toString(),rs.getString("Nome").toString()));
//prova.add(new Busta("Nome","cognome"));
}
s.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
Client:
codice:
public class Server {
static ArrayList<Busta> prova;
public static void main(String srgs[]) {
int count = 0;
initList();
//hard code to use port 8080
try (ServerSocket serverSocket = new ServerSocket(6789)) {
System.out.println("I'm waiting here: " + serverSocket.getLocalPort());
while (true) {
try {
Socket socket = serverSocket.accept();
count++;
System.out.println("#" + count + " from "
+ socket.getInetAddress() + ":"
+ socket.getPort());
HostThread myHostThread = new HostThread(socket, count);
myHostThread.start();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
private static class HostThread extends Thread{
private Socket hostThreadSocket;
int cnt;
HostThread(Socket socket, int c){
hostThreadSocket = socket;
cnt = c;
}
@Override
public void run() {
OutputStream outputStream;
try {
outputStream = hostThreadSocket.getOutputStream();
try (ObjectOutputStream objectOutputStream =
new ObjectOutputStream(outputStream)) {
objectOutputStream.writeObject(prova);
}
} catch (IOException ex) {
System.out.println(ex.toString());
}finally{
try {
hostThreadSocket.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
}
private static void initList(){
try
{
prova = new ArrayList<Busta>();
String DATABASE_URL = "jdbc:ucanaccess:///OneDrive//Programmazione//Android//dati.mdb;password=gmpa;memory=false";
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
Connection conn = DriverManager.getConnection(DATABASE_URL);
System.out.println(conn);
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM [tabripa]");
while (rs.next()) {
prova.add( new Busta(rs.getString("Nbusta").toString(),rs.getString("Nome").toString()));
//prova.add(new Busta("Nome","cognome"));
}
s.close();
conn.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
Funziona solo che invece di restituirmi i dati in formato string me li restituisce con il segnaposto in memoria:
codice:
provaserverclient3.Busta@448139f0provaserverclient3.Busta@7ba4f24f
provaserverclient3.Busta@7699a589
provaserverclient3.Busta@4dd8dc3
provaserverclient3.Busta@568db2f2
provaserverclient3.Busta@5fd0d5ae
provaserverclient3.Busta@16b98e56
provaserverclient3.Busta@27d6c5e0
provaserverclient3.Busta@15aeb7ab
provaserverclient3.Busta@6acbcfc0
provaserverclient3.Busta@3feba861
provaserverclient3.Busta@6f496d9f
provaserverclient3.Busta@10f87f48
provaserverclient3.Busta@2f4d3709
provaserverclient3.Busta@1d81eb93
provaserverclient3.Busta@34a245ab
provaserverclient3.Busta@6e8cf4c6
provaserverclient3.Busta@34c45dca
BUILD SUCCESSFUL (total time: 0 seconds)