J'essaye de faire un petit exemple avec les sockets java. Mais je ne peux pas le faire fonctionner. Le serveur reçoit correctement la requête du client. Mais le problème vient, quand j'essaie d'envoyer au serveur la chaîne "bonjour".Connexion entre le serveur socket java et le client socket
Comme j'ai débogué, l'InputStream dans le serveur est null, donc il n'imprime rien. Je pense que le problème doit être dans le PrinterWriter, je devrais peut-être utiliser une autre classe, je l'ai essayé avec d'autres classes comme BufferedWriter, mais je ne pouvais pas le faire fonctionner
ici est mon code
serveur
public class ServidorFechaHora {
static final int port = 5000;
static String line;
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(port);
while (true) {
/* accept nos devuelve el Socket conectado a un nuevo cliente.
Si no hay un nuevo cliente, se bloquea hasta que haya un
nuevo cliente.
*/
Socket soc = ss.accept();
System.out.println("Cliente conectado");
// Obtenemos el flujo de entrada del socket
InputStream is = (InputStream) soc.getInputStream();
//Función que llevaría a cabo el envío y recepción de los datos.
processClient(is);
}
}
private static void processClient(InputStream is) throws IOException {
// TODO Auto-generated method stub
BufferedReader bis = new BufferedReader(new InputStreamReader(is));
while ((line = bis.readLine()) != null){
System.out.println(line);
}
bis.close();
}
}
client
public class ClienteFechaHora {
public static void main(String[] args) throws IOException, InterruptedException {
Socket client = null;
PrintWriter output = null;
//BufferedOutputStream out = null;
DateFormat hourdateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
client = new Socket("127.0.0.1", port);
output = new PrintWriter(client.getOutputStream(), false);
while (true) {
System.out.println("Enviando datos...");
output.write("hello");
output.flush();
Thread.currentThread().sleep(2000);
//System.out.println("Fecha y hora: " + hourdateFormat);
}
}
catch (IOException e) {
System.out.println(e);
}
output.close();
client.close();
}
}
Merci à l'avance!
Je viens de vérifier le serveur avec mon client fictif et fonctionne bien –
Le flux d'entrée dans le serveur n'est jamais nul. Pas clair ce que vous demandez. – EJP
EJP comme je l'ai dit j'essaie d'envoyer la chaîne "Bonjour" du client au serveur et l'afficher dans la méthode de serveur appelée "processClient". Je pense que c'est clair ce que j'essaie de faire juste lire la description ou le code. S'il vous plaît, lisez plus attentivement la prochaine fois au lieu de me donner des points négatifs. :) – Javi