Classe de serveur:
import java.io.*;
import java.net.*;
public class clientserver {
public static void main(String args []) {
Socket s=new Socket("localhost",2345);
FileOutputStream f=new FileOutputStream("E:\\FEATUREDCOPIED.txt");
DataInputStream din= new DataInputStream(s.getInputStream);
byte[] b=new byte[2002];
din.read(b,0,b.length);
f.write(b,0,b.length);
din.close();
f.close();
s.close();
}
}
3 Réponses :
getInputtream code> et getOutputtream code> sont des méthodes, vous devez donc les appeler, ce qui signifie de mettre entre la parenthèse après leur nom: s.getinputStream () code> au lieu de juste s.getinputtream code>. p>
Mind the Paranthèses, puisque vous appelez une méthode dans Socket: s.getoutoutputtream ** () ** code> s.getinputtream ** () ** p >
** Code corrigé **
Les bugs fixes sont p>
1.Change S.GetInputStream -> S.GetInputStream () P>
2.Change S.GetoutPutStream -> S.GetUPTUTStream () P>
3.Créez une boucle pour la lecture et l'écriture dans le fichier, sinon les données peuvent perdre des données. p>
Classe de serveur p> p> < Pré> xxx pré> Classe client code>: p>
Fournir un code de copie-pâte sans commentaire est une idée terrible, car elle n'enseigne rien. En outre, vous n'avez même pas réparer la lecture brisée-sans-boucle.
@ Joachim Sauer Je suis incapable de comprendre votre commentaire. Pouvez-vous s'il vous plaît élaborer-le? Ensuite, je peux résoudre ce problème que vous souhaitez spécifier.
Il y a deux problèmes: 1. Vous postez le code sans explication de ce que vous avez fixé, cela n'aide pas à l'apprentissage. 2. Vous appelez lisez code> sans vérifier la valeur de retour. Lire CODE> n'est pas garanti de lire la longueur totale du INPUTStream code> et de l'appeler en dehors d'une boucle est presque toujours fausse.
@ Jochimsauer J'ai eu votre point que vous avez raison, j'ai réparé le bogue.