cnec
Messages postés1Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention18 juin 2004
-
18 juin 2004 à 10:30
wargre
Messages postés649Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 9 septembre 2004
-
18 juin 2004 à 10:57
Bonjour,
J'ai un petit souci. J'ai 2 ordis en reseau, je veux transferer un fichier dtd et un fichier xml et un fichier image. Tout d abord est ce que cela est possible?? J utilise une connexion mode connectee via les sockets et transfert par TCP/IP. Au final, je n arrive a transferer qu un seul fichier. Au transfert du 2eme celui qui recoit a le message : NullPointerException.
Voici mes codes:
public class EnvoieFichier
{
FichierXml fXML, fDTD;
EnvoyeurFichier envoiFic, envoiFicDTD;
EnvoyeurImage envoieIm;
final static int port = 1111;
Socket socket;
String nomFic;
public EnvoieFichier(String nomFic,String nIm, JTextArea jt)
{
try
{
//classe representant adresse IP, methode determine IP du host
InetAddress serveur = InetAddress.getByName("192.168.0.1");
//creation d un socket a partir de l'@ et IP
socket = new Socket(serveur, port);
//verification de la connexion
if (socket.isConnected())
jt.append("La connexion au serveur " + serveur + " a réussie \n");
else
jt.append("La connexion au serveur " + serveur + " n'a pas réussie \n");
/***************appel fonction creation fichiers**************/
//fXML = new FichierXml("","C:/Travail_eclipse/workspace/satellite/XML/");
//retourne un nom de fichier .xml
//fXML.CreationNomFichierXml();
//fDTD = new FichierXml("test1.dtd","C:/Travail_eclipse/workspace/satellite/XML/");
//retourne un nom de fichier .dtd
//fDTD.CreationNomFichierDTD();
//Faire de meme pour image
/*************appel pour envoie fichiers****************/
jt.append("Début envoie fichier DTD \n");
//envoiFicDTD = new EnvoyeurFichier(this, nomFic, jt);
envoiFicDTD = new EnvoyeurFichier(this, "C:/Travail_eclipse/workspace/satellite/XML/test1.dtd", jt);
jt.append("Fin envoie fichier DTD \n");
jt.append("Début envoie fichier XML \n");
envoiFic = new EnvoyeurFichier(this, nomFic, jt);
jt.append("Fin envoie fichier XML \n");
/*************appel pour envoie image****************/
/*jt.append("Fichier image va être envoyé \n");
envoieIm = new EnvoyeurImage(this, "C:/Travail_eclipse/workspace/satellite/Images/"+nIm, jt);
jt.append("Fichier image a été envoyé \n");*/
/***************************************************/
jt.append("Fermeture de la socket \n");
//System.out.println("fermeture socket");
socket.close();
jt.append("Socket fermée \n");
//System.out.println("socket fermee");
}
/************************************************/
class envoyeurFichier
//* Envoie les fichiers XML créés et la DTD correspondante */
/****************************************************************/
public EnvoyeurFichier(EnvoieFichier ef, String nFic, JTextArea jt)
{
try
{
jt.append("mise en buffer fichier\n");
lecteurFichier = new BufferedReader(new FileReader(nFic));
//ouvre un flot d'entrée sur la socket
jt.append("ouverture entree socket\n");
entree = new BufferedReader(new InputStreamReader(ef.socket.getInputStream()));
//ouvre un flot de sortie sur la socket. Ce constructeur est "deprecated" en java1.1. sans que cela présente d'inconvénient ici.
jt.append("ouverture flots sortie\n");
sortie = new PrintStream(ef.socket.getOutputStream());
jt.append("texte : " + ligne + "\n");
while ((ligne = lecteurFichier.readLine()) != null)
{
sortie.println(ligne);
jt.append("texte : " + ligne + "\n");
}
//envoie au serveur le mot codé "xxx" pour indiquer la fin du texte.
sortie.println("xxx");
//entree.close();
lecteurFichier.close();
//System.out.println(entree.readLine());
wargre
Messages postés649Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention 9 septembre 20047 18 juin 2004 à 10:57
disons que mis a par que le code est un peu (beaucoup) merdique, tu donnes le code de ton client alors que tu dis que c'est sur le serveur qu'il y a un pb....
c'est pas tout d'aimer faire des classes mais il faut qu'elle ai une utilité par exemple, EnvoyeurFichier n'a aucune utilité.