Classe d'un serveur qui met à disposition des fichiers à un client

Voici un serveur qui met à disposition des fichiers pour un client.

package server;

import java.net.*;

import java.io.*;

import java.lang.Integer;

public class MonServeur {



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

ServerSocket maSocket = null;

BufferedReader in = null;

PrintWriter out = null;

OutputStream fOut = null;



int port = 80;



if (args.length != 1) {

System.out

.println("\nSyntaxe : MonServeur Port\nValeur par defaut : 80");

} else {

port = Integer.parseInt(args[0]);

}



try {

maSocket = new ServerSocket(port);

} catch (IOException e) {

System.err.println("Impossible d’ecouter sur le port " + port);

System.exit(1);

}



Socket clientSocket = null;

try {

clientSocket = maSocket.accept();

} catch (IOException e) {

System.err.println("Connexion refusee.");

System.exit(1);

}



try {

out = new PrintWriter(clientSocket.getOutputStream(), true);

fOut = clientSocket.getOutputStream();

} catch (IOException e) {

System.err.println("Erreur de fermeture du flux d’ envoi.");

}



try {

in = new BufferedReader(new InputStreamReader(clientSocket

.getInputStream()));

} catch (IOException e) {

System.err.println("Erreur de fermeture du flux de reception.");

}



// Traitement de la demande

String inputLine, outputLine;

FileInputStream fIn;

byte[] fBuffer = new byte[1024];

int fRead = 0;

try {

while ((inputLine = in.readLine()) != null) {

// Envoi du fichier

File fAsked = new File("./" + inputLine);

if (fAsked.exists()) {

fIn = new FileInputStream(inputLine);

while ((fRead = fIn.read(fBuffer)) > 0) {

fOut.write(fBuffer, 0, fRead);

}

// Fermeture fichier

fOut.close();

}

// Pas de fichier ...

else {

out.println("no file : " + inputLine);

}

}

} catch (IOException e) {

System.err.println("Erreur de lecture flux de reception.");

}



System.out.print("\nFermeture Client");



try {

out.close();

in.close();

clientSocket.close();

maSocket.close();



} catch (IOException e) {

e.printStackTrace();

}

}

}

Laboratoire SUPINFO des technologies Sun
labo-sun@supinfo.com


Conditions d'utilisation et © Copyright SUPINFO International University
23, rue de Château Landon - 75010 PARIS - Tél : +33 (0) 153359700 Fax : +33 (0) 153359701
Respect de la vie privée