Ho provato a fare un client e un server normali(credo) senza collegamenti a database da nessuna parte.
Non mi funziona!!! Non capisco perchè!!!!
CLIENT:
codice:
import java.net.*;
import java.io.*;
public class Client {
public static void main(String args[]){
Socket s = null;
String[] ingy = {"Ciliegine di Mozzarella (gr)","Pomodorini","Origano (pizzichi)"};
int[] qtyy = {30,3,1};
System.out.println("Ingredienti e quantità ricetta: ");
for (int i=0; i<ingy.length; i++){
System.out.println(ingy[i]+","+qtyy[i])
}
int y = ingy.length;
int n;
String[] ingout;
float[] qtyout;
try{
s= new Socket("localhost", 2222);
ObjectInputStream is1 = new ObjectInputStream(s.getInputStream());
ObjectOutputStream os1 = new ObjectOutputStream(s.getOutputStream());
DataInputStream is3 = new DataInputStream(s.getInputStream());
DataOutputStream os2 = new DataOutputStream(s.getOutputStream());
os2.write(y);
for (int j=0; j<y; j++)
{
os1.writeObject(ingy[j]);
os2.writeFloat(qtyy[j]);
}
n = (int)is3.read();
ingout = new String[n];
qtyout = new float[n];
for (int j=0; j<n; j++)
{
ingout[j] = (String) is1.readObject();
qtyout[j] = is3.readFloat();
}
System.out.println("\nLista della spesa: ");
for (int j=0; j<n; j++){
System.out.println("Ingredienti\n"+ingout[j]+":"+qtyout[j]);
}
os1.close();
os2.close();
is1.close();
is3.close();
s.close() ;
} // end-try di collegamento socket
catch(UnknownHostException e){
System.err.println("Host Unknown");
}
catch(Exception e){
System.err.println(e);
}
}
}
SERVER:
codice:
import java.net.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class Server{
public static void main(String args[]){
Socket cs = null;
ServerSocket ss = null;
int y;
String[] ingy;
float[] qtyy;
String[] ingout;
float[] qtyout;
try{
ss = new ServerSocket(2222);
while(true){
cs = ss.accept();
ObjectOutputStream os1= new ObjectOutputStream(cs.getOutputStream());
DataOutputStream os3 = new DataOutputStream(cs.getOutputStream());
ObjectInputStream is1= new ObjectInputStream(cs.getInputStream());
DataInputStream is2= new DataInputStream(cs.getInputStream());
y = (int)is2.read();
ingy = new String[y];
qtyy = new float[y];
for (int j=0; j<y; j++){
ingy[j] = (String)is1.readObject(); //array ricetta
qtyy[j] = is2.readFloat();
}
String[] ingd = {"Ciliegine di Mozzarella (gr),Farina (gr),Mele,Pomodorini"}; //array dispensa
float[] qtyd = {10,50,3,10};
int n=0;
ingout = new String[n]; //array output spesa
qtyout = new float[n];
//ingy.lengh
for(int j=0; j<y; j++){ //ingy
for(int k=0; k<ingd.length; k++){ //ingd
if (ingy[j]==ingd[k]){
float q = qtyy[j] - qtyd[k];
if (q>0){
ingout[n] = ingy[j];
qtyout[n] = q;
n++;
}
}
}
}
os3.write(n);
for(int a=0; a<n; a++){
os1.writeObject(ingout[a]);
os3.writeFloat(qtyout[a]);
}
os1.close();
os3.close();
is1.close();
is2.close();
cs.close();
}
}
catch(UnknownHostException e){
System.err.println("Host Unknown");
}
catch(Exception e){
System.err.println(e);
}
}
}