1 pièce(s) jointe(s)
réseau TCP multi-threading
Bonjour,
J'essaye de faire un client et un serveur en multithread mais le serveur ne veut pas fonctionner. J'ai l'erreur suivante : Pièce jointe 335403
Client
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
try {
Socket s = new Socket("localhost", 3030);
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
System.out.println("Lire un nobre NB");
Scanner clavier = new Scanner(System.in);
int nb = clavier.nextInt();
System.out.println("envoyer le nombre" + nb + "au serveur");
os.write(nb);
System.out.println("attedre la réponse du serveur:");
int rep = is.read();
System.out.println("La réponse est :" + rep) ;
} catch(IOException e){
e.printStackTrace();}
}
} |
Serveur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class MultiThreadedServer {
public static void main(String []args){
System.out.print("Serveur en ligne\n");
//declare a TCP socket object and initialize it to null
ServerSocket serverSocket=null;
//create the port number
int port = 3030;
try {
//create the TCP socket server
serverSocket = new ServerSocket(3030);
System.out.println("ECHO server created on port = "+port);
} catch (IOException ex) {
//will be executed when the server cannot be created
System.out.println("Error: The server with port="+port+" cannot be created");
}
//starts an endless loop
while(true){
Socket clientSocket = null;
try {
//start listening to incoming client request (blocking function)
System.out.println("[ECHO Server] waiting for the incoming request ...");
clientSocket = serverSocket.accept();
} catch (IOException e) {
System.out.println("Error: cannot accept client request. Exit program");
return;
}
try {
//create a new thread for each incoming message
new Thread(new Run(clientSocket, "Multithreaded Server")).start();
} catch (Exception e) {
//log exception and go on to next request.
}
}
}
} |
Exécution :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class Run implements Runnable{
protected Socket clientSocket = null;
protected String serverText = null;
public Run(Socket clientSocket, String serverText) {
this.clientSocket = clientSocket;
this.serverText = serverText;
}
public void run() {
try {
InputStream input = clientSocket.getInputStream();
OutputStream output = clientSocket.getOutputStream();
InputStreamReader inputStream = new InputStreamReader(input);
BufferedReader bufferedReader = new BufferedReader(inputStream);
String message = null;
message = bufferedReader.readLine();
if (message != null)
{
System.out.println("j'attend le nom de client");
Scanner sc = new Scanner(System.in);
String nom = sc.nextLine();
}
else
{System.out.println("j'attend un nombre (1 octet)");
int nb=input.read();
System.out.println("j envoi la repense");
output.write(nb*5);
System.out.println("deconexion de client");
output.close();
input.close();
}
} catch (IOException e) {
//report exception somewhere.
e.printStackTrace();
}
}
} |