Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : slt [ Réseau & internet / Internet ] (samira46)

mardi 29 avril 2008 à 22:34:04 | slt

samira46

voila les codes:
1.la classe du serveur:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class serveur {

    public static void main(String[] args) throws IOException {
       //création de la socket serveur.
        ServerSocket s = new ServerSocket(8189);
        System.out.println("serveur demare!!! en attente d'une connection...");
        int i = 1;
        for (;;) {
           //acceptation de la connexion avec le client.
            Socket incoming = s.accept();
            System.out.println("connection acepter n°" + i);
            System.out.println("Spawning " + i);
            Thread t = new communication(incoming, i);
            Thread t2 = new transmitionsocketserveur();
            t2.start();
            t.start();
            i++;
        }

    }
}
2.la classe du client:
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.util.StringTokenizer;

public class client {
    public static void main(String[] args) throws IOException {


String host = "localhost";


        communication = new Socket(host, 8189);
        in = new BufferedReader(new InputStreamReader(communication
                .getInputStream()));
        out = new PrintWriter(communication.getOutputStream(), true);

        int nbelement = Integer.parseInt(in.readLine());
        System.out.println(nbelement +"\n\n\n");
      int i=0;
        while (i != nbelement-2/*je sais pas pourquoi mais ca ne marche que si je fait ca*/) {
            String str = in.readLine();
            System.out.println(str);
            i++;
            if(i== nbelement-2)break;//sureter supplementaire

        }
        String saisie = JOptionPane
                .showInputDialog("entree l'id du fichier qui vous interresse");
        out.println(saisie);
        for (int p = 0; p < 4; p++) {
            s = in.readLine();

        }

        StringTokenizer t = new StringTokenizer(s, "|");
        int id = Integer.parseInt(t.nextToken("|"));
        String name = t.nextToken("|");
        int taille = Integer.parseInt(t.nextToken("|"));
        System.out.println("\n\nid = " + id + "\nnom = " + name + "\ntaille = "
                + taille);

        name = name.substring(name.lastIndexOf('\\') + 1);

System.out
                .println("connection sur le port 8188 pour commencer le transfert");
        transmition = new Socket(host, 8188);
        transmettre = new PrintWriter(transmition.getOutputStream(), true);
        InputStream brut = transmition.getInputStream();
        InputStream entree = new BufferedInputStream(brut);
        System.out
                .println("\nenvoi du nom du fichier");
        transmettre.println(name);
        int tailleDuContenu = taille;
        byte[] donnees = new byte[taille];
        int octetsLus = 0;
        int deplacement = 0;
        int iteration = 1;
        while (deplacement < tailleDuContenu) {
            System.out.println("recuperation du fichier : " + iteration);
iteration++;
            octetsLus = entree.read(donnees, deplacement, donnees.length
                    - deplacement);
            if (octetsLus == -1)
                break;
            deplacement += octetsLus;
            System.out.println(deplacement);
        }
        FileOutputStream fichiersortant = new FileOutputStream(name);
System.out.println("\nFileOutputStream fichiersortant = new FileOutputStream( " + name + ");");
        fichiersortant.write(donnees);
        //vidage du tampon
        fichiersortant.flush();
        //fermeture du flots de donnees
        fichiersortant.close();
        System.out.println("fin du transfert\nverification de l'existenbce du fichier :");
        File verif = new File(name);
        if(verif.exists())System.out.println("true");
        else
        System.out.println("false");


    }

    public static BufferedReader in;
    public static String s;
    public static PrintWriter transmettre;
    public static PrintWriter out;
    public static Socket transmition;
    public static Socket communication;
}
3.la classe communication:
import java.io.*;
import java.net.*;

class communication extends Thread implements Runnable{
    public communication(Socket connect, int g) throws IOException {
        SocketConnection = connect;
        g = connecte;
    }

    public void run() {

        try {
            //declaration et initialisation des flux
            //pour la communication avec le client
            //je vais essaye de faire en sorte que la
            //communication s'effectue selon une syntaxe
            //precise et predefini
            in = new BufferedReader(new InputStreamReader(SocketConnection
                    .getInputStream()));
            out = new PrintWriter(SocketConnection.getOutputStream(), true);
            //fin de declaration des flux
            //tableau de fichier
            //ce code devra etre optimise pour arrive a faire des tableau
            //dynamiqe
            //declaration des fichier
            File f = new File("");
            String chemin = f.getAbsolutePath();
            File f2 = new File(chemin);
            System.out.println(chemin);
            File[] currentDirectoryFile = f2.listFiles();
            out.println(currentDirectoryFile.length);
            for (int i = 0; i < currentDirectoryFile.length; i++) {

                out.println(i + " : " + currentDirectoryFile[i] + " taille :"
                        + currentDirectoryFile[i].length());

            }

            saisie2 = Integer.parseInt(in.readLine());

            System.out.println("saisie du connecte n° " + connecte + ": "
                    + saisie2);

            File toDownload = currentDirectoryFile[saisie2];
            System.out.println("\nfichier choisie : " + toDownload.toString()
                    + " taille de celui ci :" + toDownload.length());
            //envoie des information relative au fichier pour commencer le
            // telechargement
            out.println("\n" + saisie2 + "|" + toDownload.toString() + "|"
                    + toDownload.length());

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public BufferedReader in;

    public PrintWriter out;

    public int saisie2;



    public Socket SocketConnection;

    public int connecte;
}
4.la classes transmission:

import java.io.*;
import java.net.*;

class transmition extends Thread implements Runnable {
    public transmition(Socket connect, int g) throws IOException {
        SocketTransmition = connect;
        g = connecte;
    }

    public void run() {

        try {
            System.out.println("\n demarrage du demon de transmition");
            in = new BufferedReader(new InputStreamReader(SocketTransmition
                    .getInputStream()));
            out = new PrintWriter(SocketTransmition.getOutputStream(), true);
            System.out.println("\n boucle de recuperation du nom du fichier");
            int boucle = 1;
         //recuperation du nom du fichier
         do{
                str = in.readLine();
                System.out.println(str);
                boucle++;
               // if(str==null)break;
            }while (boucle != 2) ;
            System.out.println("\nfin de la boucle");
            System.out.println("\nrecuperation de la taille du fichier");

            File toTransmit = new File(str);
            int taille = (int) toTransmit.length();
System.out.println("\n demarrage du demon de transmition");

            FileInputStream DataToSend = new FileInputStream(toTransmit);
            byte[] FileToSend = new byte[taille];
            int ReadOctet = 0;
            int MovedByte = 0;
            System.out
                    .println("\nfin de la creation du tableau et des variable de transfert");

            while (MovedByte < taille) {
                System.out.println("\n debut du transfert");

                System.out.println("\nvaleur de MovedByte : " + MovedByte
                        + "\n" + "valeur de ReadOctet : " + ReadOctet);
                ReadOctet = DataToSend.read(FileToSend, MovedByte,
                        FileToSend.length - MovedByte);
                if (ReadOctet == -1)
                    break;
                MovedByte += ReadOctet;
                System.out.println(MovedByte);
                System.out.println("\nfin du bloc");

                PrintStream DataSender = new PrintStream(SocketTransmition
                        .getOutputStream());
                DataSender.write(FileToSend);
                System.out.println("\nfin du transfert");

            }

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public Socket SocketTransmition;

    public BufferedReader in;

    public PrintWriter out;

    public static String str;

    public int connecte;
}
5.la classe transmissionsocketserveur:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class transmitionsocketserveur extends Thread {

    private ServerSocket transfert;

    public void run() {

        ServerSocket transmition;
        try {
            transfert = new ServerSocket(8188);

            System.out
                    .println("serveur de transmition demare!!! en attente d'une connection...");
            int o = 1;
            for (;;) {
                Socket entrante = transfert.accept();
                System.out.println("connection de transmition accepter n°" + o);
                System.out.println("transmition n " + o);
                t = new transmition(entrante, o);
                t.setDaemon(true);
                t.start();
                o++;
            }
        } catch (IOException e) {

            e.printStackTrace();
        }

    }

    public transmition t;
}



donc voila mes codes mais j'arrive pas a la transmission de mon fichier
a travers ces codes,donc si quelq'un peut me aider ça fait un gros
plaisir.



Cette discussion est classé dans : public, int, system, out, println


Répondre à ce message

Sujets en rapport avec ce message

pb Keylistener [ par lenneth666 ] punaiz jdevien fou, j'ai regardé plein de tutoriaux sur lé keylistener et ca ne marche pas. Voici mon code public class Chenille extends JFrame imp Urgent svp un probleme de trie!!!! [ par wissal04 ] avant de commencer bsr a tous,j'ai un probleme de tri,j'ai fais un tableau a une seul dimenssion et je voudrais le trié avant d'afficher son contenue Help Me SVP [ par Big cent ] Bon voilà mon code://Classe Principalimport java.util.*;import java.io.*; public class Principale{ static Enseignant tab_ens[] = new Enseignant Methode Overriding [ par PY01A0080 ] Bonjour,est ce que ce programme utilise la methode overriding ?J'ai un doute.class Account{int p=4000; int r=9; int t=5;int i=p*r*t;public void calcul Besoin d'aide SVP, casse tete etudiant en action IoI [ par djterrence ] Bonjour, voila j ai un gros probleme je dois faire un programme pour mon cour mais j y arrive vraiment pas donc j aimerais un peut d aide si cela n'es Reseau et internet [ par felouss ] bonjour,j ai un probleme pour envoyer un gros fichier via UDP,udp ne permet l envoie de paquet > 65kilo,pour cela du coté serveur j ai decoupé le fich salutque fais ce programme java? [ par bluelagoon91 ] salut! est ce que quelqu'un pourrait m'expliquer ce que fait ce progarmme java!merci<img src="/imgs java-probleme de saisie [ par steef04 ] salut j'ai un prob avec le prog qui suit ca ne donne pas la possibilite d'entrer le code,je ne peux continuer une aide please!!!!//ce programme fait l app en java [ par diwa ] j'ai ce programme ,je veux que les imputs et les outputs doit etre afficher dans une frame , je suis vraiment debutante en java mpublic class VOL{ pub une banque en java [ par shadowcat1 ] bonjour a tousj'ai un probleme d'appel de methode. j'ai tout essayé mais ca ne marche pas.ca concerne la creation d'un compte pour une personne(soit m


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.