adamsjilal
Messages postés46Date d'inscriptionlundi 14 mars 2016StatutMembreDernière intervention29 avril 2018
-
20 févr. 2017 à 16:14
Bonjour,
en faite voila j'ai une appliction chate de java avec le socket, du coup j'ai bien fait la partie communication et le chate et de plus de voulais integrer une partie pour pouvoir envoyer des fichier au serveur. BON le probleme je suis en train de confondre le flux c'est quand envoyer des chaine de caratere lors de l'envoie des fichier. je m'explique: le client se connecte au serveur et commence a chater, et en parallele lui peut enovoyer des fichier en direction du serveur et tout ça j'utilise le GUI avec des interface graphique. les communication se passe bien mais les clients envoient des fichier vide.sans contenu. SVP je veux que vous m'aidez!! a faire fonctionner l'envoie des fichier.merci.
voila le client
try { File file = new File(lbpath.getText()); byte[] b = new byte[16 * 1024]; in = new FileInputStream(file); out= sock.getOutputStream(); int compteur; while ((compteur = in.read(b)) > 0) { out.write(b, 0, compteur); } // lbpath.setText(""); } catch (Exception ex) { ex.printStackTrace(); }
le serveur
@Override public void run() { clientOutputStreams = new ArrayList(); users = new ArrayList();
try { ServerSocket serverSock = new ServerSocket(2222);
while (true) { Socket clientSock = serverSock.accept(); PrintWriter writer = new PrintWriter(clientSock.getOutputStream()); clientOutputStreams.add(writer);
Thread listener = new Thread(new ClientHandler(clientSock, writer)); listener.start(); ta_chat.append("Connecter avec succes. \n"); } } catch (Exception ex) { ta_chat.append("erreur se produit lors de tentative du connection. \n"); } }
et enfin le client Handler
client = user; try { sock = clientSocket; in = sock.getInputStream(); //int1 = sock.getInputStream(); InputStreamReader isReader = new InputStreamReader(in); reader = new BufferedReader(isReader); outputFILE = new FileOutputStream("C:\\Users\\ismas\\Documents\\san.txt"); byte[] b = new byte[16 * 1024]; int compteur; while ((compteur = in.read(b)) > 0) { outputFILE.write(b, 0, compteur); }