Sono un programmatore Java alle prime armi, non riesco a implementare una semplice comunicazione client/server:
Quando lancio il client dopo aver lanciato il server mi appare sul pannello "Console" (uso Eclipse) il seguente
output:
Server in attesa sulla porta 2012 (2013)
Connessione avvenuta
ECCEZIONE Server: java.net.SocketException: Connection reset
Qualcuno puo' aiutarmi per favore?
********** Client.java **********
codice:
import java.net.*;
import java.io.*;
public class Client
{
public static void main(String[] args)
{
Socket client;
OutputStream out;
ObjectOutputStream oos;
String serverName="127.0.0.1";
int port=2013; // 2012
try
{
System.out.println("Connessione a " + serverName + " sulla porta " + port);
client = new Socket(serverName, port);
System.out.println("Collegato a " + client.getRemoteSocketAddress());
out=client.getOutputStream();
oos=new ObjectOutputStream(out);
oos.writeUTF("Prova");
}
catch (Exception exc)
{
System.out.println("ECCEZIONE Client: "+exc.toString());
}
}
}
********** Server.java **********
codice:
import java.io.*;
import java.net.*;
public class Server
{
public static void main(String[] args)
{
Socket s;
ServerSocket ss;
InputStream in;
ObjectInputStream ois;
String messaggio="indefinito";
try
{
ss = new ServerSocket(2013); // 2012
ss.setSoTimeout(50000); // 100000
System.out.println("Server in attesa sulla porta 2012 (2013)");
s=ss.accept();
System.out.println("Connessione avvenuta");
in=s.getInputStream();
ois=new ObjectInputStream(in);
messaggio=ois.readUTF();
System.out.println("Il client ha inviato: "+messaggio);
}
catch (Exception exc)
{
System.out.println("ECCEZIONE Server: "+exc.toString());
}
}
}