A voir également:
- Programmation cilent\serveur
- Changer serveur dns - Guide
- Serveur dns gratuit - Guide
- Serveur entrant et sortant - Guide
- Application de programmation - Guide
- Serveur dns orange - Accueil - Guide box et connexion Internet
5 réponses
La "Réponse" à quoi? si tu posais une question, ce serrai mieux tu ne crois pas?
Parce que programmation client/serveur, seul, ça ne veux rien dire.
Parce que programmation client/serveur, seul, ça ne veux rien dire.
1) Écrire un programme qui rendra le service suivant :
* Afficher un message de bienvenue ;
* demander une phrase ;
* convertir cette phrase en majuscule (méthode toUpperCase() de la classe String ) ;
* recommencer si cette cette phrase est différente de « bye ».
On testera ce programme par telnet. Telnet permet de se connecter à distance sur une autre machine. Mais en fait, c'est
un programme qui ne fait qu'envoyer sur le réseau ce qui est frappé au clavier et affiche à l'écran ce qu'il reçoit. Tout
le travail d'interprétation des commandes est fait à distance sur le serveur. Par défaut telnet se connecte au port 23.
Pour se connecter à un autre port : telnet 192.168.29.X no_port
2) Écrire maintenant un programme ressemblant à Telnet. Ce programme sera lancé sur le PC. Pour interroger le
clavier on construira un BufferedReader à partir du flux Sytem.in.
3) Essayez de vous connecter aux programmes de vos camarades.
4) Les programmes précédents ont un défaut. Ils ne permettent pas à plusieurs clients de se connecter. Reprendre le
programme serveur de majuscule et le rendre « multi-client ».
2. Serveur
merci d'avance
* Afficher un message de bienvenue ;
* demander une phrase ;
* convertir cette phrase en majuscule (méthode toUpperCase() de la classe String ) ;
* recommencer si cette cette phrase est différente de « bye ».
On testera ce programme par telnet. Telnet permet de se connecter à distance sur une autre machine. Mais en fait, c'est
un programme qui ne fait qu'envoyer sur le réseau ce qui est frappé au clavier et affiche à l'écran ce qu'il reçoit. Tout
le travail d'interprétation des commandes est fait à distance sur le serveur. Par défaut telnet se connecte au port 23.
Pour se connecter à un autre port : telnet 192.168.29.X no_port
2) Écrire maintenant un programme ressemblant à Telnet. Ce programme sera lancé sur le PC. Pour interroger le
clavier on construira un BufferedReader à partir du flux Sytem.in.
3) Essayez de vous connecter aux programmes de vos camarades.
4) Les programmes précédents ont un défaut. Ils ne permettent pas à plusieurs clients de se connecter. Reprendre le
programme serveur de majuscule et le rendre « multi-client ».
2. Serveur
merci d'avance
Bonjour
Un début de réponse ici :
http://www.commentcamarche.net/faq/10925-demander-de-l-aide-pour-vos-exercices-sur-ccm
Un début de réponse ici :
http://www.commentcamarche.net/faq/10925-demander-de-l-aide-pour-vos-exercices-sur-ccm
mport java.util.Scanner;
public class pgm
{
public static void main(String[] args)
{
System.out.println(" Bienvenue ");
Scanner s = new Scanner(System.in);
System.out.print("Entrez une phrase SVP ");
int i=0;
while (i==0){
String p = s.nextLine();
if(!(p.equals("Au revoir"))){
String PHMA = p.toUpperCase();
System.out.println(""+PHMA);
}
else{
i=1;
}
}
}
}
j'ai fais ça
public class pgm
{
public static void main(String[] args)
{
System.out.println(" Bienvenue ");
Scanner s = new Scanner(System.in);
System.out.print("Entrez une phrase SVP ");
int i=0;
while (i==0){
String p = s.nextLine();
if(!(p.equals("Au revoir"))){
String PHMA = p.toUpperCase();
System.out.println(""+PHMA);
}
else{
i=1;
}
}
}
}
j'ai fais ça
bonjour
en faite j'ai réussi de réaliser ça mais uniquement pour une seule fois que le client envoie une phrase au serveur qui la convertit en maj et ensuite le client la récupère et l'affiche(c.a.d une seule phrase) où je dois faire la boucle au niveau du client ou du serveur?
voici le code du serveur :
import java.io.*;
import java.net.*;
class ServeurTCP_TP1 {
public static void main(String argv[]) throws Exception
{
String phraseClient;
String phraseMajuscule;
ServerSocket socketEcoute = new ServerSocket(4567);
while(true) { // boucle infinie
Socket socketConnexion = socketEcoute.accept();
BufferedReader entreeDepuisClient = new BufferedReader(new
InputStreamReader(socketConnexion.getInputStream()));
PrintWriter sortieVersClient =
new PrintWriter(socketConnexion.getOutputStream(),true);
phraseClient = entreeDepuisClient.readLine();
phraseMajuscule = phraseClient.toUpperCase();
sortieVersClient.println(phraseMajuscule);
} // fin boucle (repartir et attendre une nouvelle connexion)
}
}
et le pgm du client
import java.io.*;
import java.net.*;
class ClientTCP_TP1 {
public static void main(String argv[]) throws Exception
{
String phrase;
String phraseModifiee;
BufferedReader entreeDepuisUtilisateur = new BufferedReader(new InputStreamReader(System.in));
Socket socketClient = new Socket("localhost", 4567);
PrintWriter sortieVersServeur = new PrintWriter(socketClient.getOutputStream(),true);
BufferedReader entreeDepuisServeur = new BufferedReader(new InputStreamReader(socketClient.getInputStream()));
phrase = entreeDepuisUtilisateur.readLine();
sortieVersServeur.println(phrase);
phraseModifiee = entreeDepuisServeur.readLine();
System.out.println("RECU DU SERVEUR: " + phraseModifiee);
entreeDepuisUtilisateur.close();
entreeDepuisServeur.close();
sortieVersServeur.close();
socketClient.close();
}
}
j'ai pas réussi à créer la boucle qui me permet d'entrer chaque fois une phrase depuis le client et chaque fois le serveur la convertit en majuscule jusqu'à ce que ce dernier"le serveur" trouve la chaine "au revoir" il s'arrête
en faite j'ai réussi de réaliser ça mais uniquement pour une seule fois que le client envoie une phrase au serveur qui la convertit en maj et ensuite le client la récupère et l'affiche(c.a.d une seule phrase) où je dois faire la boucle au niveau du client ou du serveur?
voici le code du serveur :
import java.io.*;
import java.net.*;
class ServeurTCP_TP1 {
public static void main(String argv[]) throws Exception
{
String phraseClient;
String phraseMajuscule;
ServerSocket socketEcoute = new ServerSocket(4567);
while(true) { // boucle infinie
Socket socketConnexion = socketEcoute.accept();
BufferedReader entreeDepuisClient = new BufferedReader(new
InputStreamReader(socketConnexion.getInputStream()));
PrintWriter sortieVersClient =
new PrintWriter(socketConnexion.getOutputStream(),true);
phraseClient = entreeDepuisClient.readLine();
phraseMajuscule = phraseClient.toUpperCase();
sortieVersClient.println(phraseMajuscule);
} // fin boucle (repartir et attendre une nouvelle connexion)
}
}
et le pgm du client
import java.io.*;
import java.net.*;
class ClientTCP_TP1 {
public static void main(String argv[]) throws Exception
{
String phrase;
String phraseModifiee;
BufferedReader entreeDepuisUtilisateur = new BufferedReader(new InputStreamReader(System.in));
Socket socketClient = new Socket("localhost", 4567);
PrintWriter sortieVersServeur = new PrintWriter(socketClient.getOutputStream(),true);
BufferedReader entreeDepuisServeur = new BufferedReader(new InputStreamReader(socketClient.getInputStream()));
phrase = entreeDepuisUtilisateur.readLine();
sortieVersServeur.println(phrase);
phraseModifiee = entreeDepuisServeur.readLine();
System.out.println("RECU DU SERVEUR: " + phraseModifiee);
entreeDepuisUtilisateur.close();
entreeDepuisServeur.close();
sortieVersServeur.close();
socketClient.close();
}
}
j'ai pas réussi à créer la boucle qui me permet d'entrer chaque fois une phrase depuis le client et chaque fois le serveur la convertit en majuscule jusqu'à ce que ce dernier"le serveur" trouve la chaine "au revoir" il s'arrête
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est ta boucle principale qui ne va pas :
indice pour le 4) : met le while (...!=BYE) dans une fonction et appele là avec un thread détaché.
while(true) { // boucle infinie
Socket socketConnexion = socketEcoute.accept();
BufferedReader entreeDepuisClient = new BufferedReader(new
InputStreamReader(socketConnexion.getInputStream()));
PrintWriter sortieVersClient =
new PrintWriter(socketConnexion.getOutputStream(),true);
phraseClient = entreeDepuisClient.readLine();
phraseMajuscule = phraseClient.toUpperCase();
sortieVersClient.println(phraseMajuscule);
} // fin boucle (repartir et attendre une nouvelle connexion)
il manque une boucle et le message de bienvenue :
while(true) { // boucle infinie
Socket socketConnexion = socketEcoute.accept();
BufferedReader entreeDepuisClient = new BufferedReader(new
InputStreamReader(socketConnexion.getInputStream()));
PrintWriter sortieVersClient =
new PrintWriter(socketConnexion.getOutputStream(),true);
sortieVersClient.println("Bienvenue\r\nentrez un mot ou une phrase\r\n");
while(phraseMajuscule!="BYE")
{
phraseClient = entreeDepuisClient.readLine();
phraseMajuscule = phraseClient.toUpperCase();
sortieVersClient.println(phraseMajuscule);
}
socketConnexion.close();
} // fin boucle (repartir et attendre une nouvelle connexion) Avant de faire le client, fait déjà fonctionner ton serveur avec Telnet.
indice pour le 4) : met le while (...!=BYE) dans une fonction et appele là avec un thread détaché.
import java.net.*;
import java.io.*;
import java.util.Scanner;
//import com.sun.org.apache.xalan.internal.xsltc.compiler.Patte
public class ServeurTCP {
static final int port = 23;
public static void main (String [] args)throws Exception{
while (true){
ServerSocket serverSocket = new ServerSocket(port,23);
System.out.println("Le serveur "+ serverSocket+"est démarré " );
System.out.println("En attente d'un Client ...");
try{
Socket socket = serverSocket.accept();
try{
System.out.println("Connexion acceptée " + socket);
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream())
);
PrintWriter out = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
System.out.println("bienvenue");
String phrase=new String();
String phrase1=new String();
Scanner sc=new Scanner(System.in);
while (phrase!="bye")
{
System.out.println("Saisissez une phrase:");
phrase=sc.nextLine();
phrase1=phrase.toUpperCase();
System.out.println(phrase1);
phrase=sc.nextLine();
}
}finally{
System.out.println("closing...");
socket.close();
System.out.println("Redemarrage du serveur...");
}
}finally{
serverSocket.close();
}}
}
}
BEN j'ai fais la boucle mai aucun modification il juste convertie l msg
import java.io.*;
import java.util.Scanner;
//import com.sun.org.apache.xalan.internal.xsltc.compiler.Patte
public class ServeurTCP {
static final int port = 23;
public static void main (String [] args)throws Exception{
while (true){
ServerSocket serverSocket = new ServerSocket(port,23);
System.out.println("Le serveur "+ serverSocket+"est démarré " );
System.out.println("En attente d'un Client ...");
try{
Socket socket = serverSocket.accept();
try{
System.out.println("Connexion acceptée " + socket);
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream())
);
PrintWriter out = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
System.out.println("bienvenue");
String phrase=new String();
String phrase1=new String();
Scanner sc=new Scanner(System.in);
while (phrase!="bye")
{
System.out.println("Saisissez une phrase:");
phrase=sc.nextLine();
phrase1=phrase.toUpperCase();
System.out.println(phrase1);
phrase=sc.nextLine();
}
}finally{
System.out.println("closing...");
socket.close();
System.out.println("Redemarrage du serveur...");
}
}finally{
serverSocket.close();
}}
}
}
BEN j'ai fais la boucle mai aucun modification il juste convertie l msg
Je ne comprend rien à ce que tu fais. Tu n'as pas besoin de remettre toutes les options du serveur à chaque deconnexion de client. Et pourquoi utiliser System.out pour tes sortie qui devraient être sur le socket ?
compare phrase1 avec "BYE", comme ça tu sortira sur plus d'entrées utilisateur (bye, BYE,Bye...).
Ta version précédente était mieux, juste la boucle while à modifier comme je te l'ai dis.
compare phrase1 avec "BYE", comme ça tu sortira sur plus d'entrées utilisateur (bye, BYE,Bye...).
Ta version précédente était mieux, juste la boucle while à modifier comme je te l'ai dis.