while((n=f.read(buf))==1024)
Le test correct est
while((n=f.read(buf))>=0)
on teste tant que la valeur de retour n'est pas négative. Seule une valeur de -1 indique une fin de fichier.
Ensuite sérialiser un objet de type File est inutile. Tout ce que ton code fait actuellement c'est copier une fichier d'un dossier du client vers un autre dossier du client. La seule chose qui est transférée entre le serveur et le client, c'est le nom du fichier. File ne contient pas le contenu du fichier, juste son chemin d'accès. Si tu veux transférer un fichier du serveur vers les clients, tu lit les bytes coté serveur, tu écrit ces bytes sur la socket, tu relit ces bytes coté client et tu les écrit dans le fichier d'arrivée.
PS: un effort pour nommer correctement tes variables dans ton code en respectant les conventions java, et un autre effort pour écrire autre chose que du language SMS dans tes questions, ce ne serait pas du luxe.
Partager