Salve,

sto scrivendo un programmino per trasferire files da un pc all'altro!
Nel momento in cui dal programma di upload faccio partire appunto l'upload del file (programma client) nel programma server, che dunque è in attesa mediante il metodo readObject(), viene lanciata la seguente eccezione:
(mensionata chiamando nel catch e.printStackTrace())

codice:
java.net.SocketException: Connection reset     at java.net.SocketInputStream.read(SocketInputStream.java:168)     at java.net.SocketInputStream.read(SocketInputStream.java:182)     at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2249)     at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2542)     at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2552)     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)     at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)     at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)     at java.io.ObjectInputStream.readFatalException(ObjectInputStream.java:1968)     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)     at ReceiveFiles.main(ReceiveFiles.java:69)

Vi posto quello che c'è nella riga 69 e nei suoi dintorni:
codice:
		try
		{
			portServer = new ServerSocket(port);
			
			while(true)
			{
				client = portServer.accept();
				
				if(client != null)
				{	
					System.out.println("Pronto a ricevere un file");
					inFromUploader=new ObjectInputStream(client.getInputStream());
					
					try
					{
						System.out.println("\nFile da ricevere: ?");
						
						String fileName = (String) inFromUploader.readObject();// anche qui ottengo la stessa eccezione
						
						File f = new File(fileName);
						
						if(!f.exists())
							f.createNewFile(); //file verranno scritti i bytes
							
						Packet pac = null;
						scriviInFile = new FileOutputStream(f);
						byte[] tmp = null;
							
						while((pac=(Packet)inFromUploader.readObject()) != null) //riga 69
						{ //ecc..
Naturalmente se il programma comprende anche questa riga "String fileName = (String) inFromUploader.readObject();" l'eccezione viene lanciata prima, esattamente quando l'esecuzione raggiunge questo punto! In questo caso dovrebbe leggere un oggetto di tipo String!
Nella riga 69 invece dovrebbe ricevere un oggetto creato da me di tipo Packet (classe implementata anche lato client)

Ecco la classe:

codice:
 
class Packet
{
	byte[] bytes;
	String mex;
	
	public Packet(byte[] array, String message)
	{
		this.bytes=array;
		this.mex=message;
	}
	
	public byte[] getBytes()
	{
		return this.bytes;
	}
	
	public String getMessage()
	{
		return this.mex;
	}
}
Non capisco perchè da questi errori!