Je suis novice en programmation Java et j'essaie simplement de mettre en place un programme réseau de base.Programme de mise en réseau Java simple
J'ai 2 classes, un client et un serveur. L'idée est que le client envoie simplement un message au serveur, puis le serveur convertit le message en majuscules et le renvoie au client. Je n'ai aucun problème pour envoyer un message au client, le problème est que je n'arrive pas à stocker le message que le client envoie du côté serveur variable afin de le convertir. Ne renvoyez pas ce message spécifique.
Voici mon code à ce jour:
côté serveur
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket (9091);
while (true) {
System.out.println("Waiting");
//establish connection
Socket client = server.accept();
System.out.println("Connected " + client.getInetAddress());
//create IO streams
DataInputStream inFromClient = new DataInputStream(client.getInputStream());
DataOutputStream outToClient = new DataOutputStream(client.getOutputStream());
System.out.println(inFromClient.readUTF());
String word = inFromClient.readUTF();
outToClient.writeUTF(word.toUpperCase());
client.close();
}
}
}
côté client
public class Client {
public static void main(String[] args) throws IOException {
Socket server = new Socket("localhost", 9091);
System.out.println("Connected to " + server.getInetAddress());
//create io streams
DataInputStream inFromServer = new DataInputStream(server.getInputStream());
DataOutputStream outToServer = new DataOutputStream(server.getOutputStream());
//send to server
outToServer.writeUTF("Message");
//read from server
String data = inFromServer.readUTF();
System.out.println("Server said \n\n" + data);
server.close();
}
}
Je pense que le problème pourrait être la « chaîne de mots = inFromClient.readUTF(); ' ligne? S'il vous plaît quelqu'un peut-il conseiller? Merci.
Et pourquoi vous lisez deux fois du client sur le serveur, puis jeter le premier paquet UTF? Oui, vous l'imprimez, mais vous ne le convertissez pas? –
Ici: 'System.out.println (inFromClient.readUTF());' Vous rejetez ce qui est lu. –