Ich bin neu in der Java-Programmierung und ich versuche nur, ein sehr einfaches Netzwerk-Programm zu bekommen.Einfaches Java-Netzwerk-Programm
Ich habe 2 Klassen, einen Client und einen Server. Die Idee ist, dass der Client einfach eine Nachricht an den Server sendet, dann konvertiert der Server die Nachricht in Großbuchstaben und sendet sie zurück an den Client.
Ich habe keine Probleme bekommen den Server eine Nachricht an den Client senden, das Problem ist, ich kann nicht scheinen, um die Nachricht zu speichern, die der Client in einer Variablen Server-Seite sendet, um es zu konvertieren und so können Sende diese spezifische Nachricht nicht zurück.
Hier ist mein Code so weit:
Server-Seite
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();
}
}
}
Client-Seite
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();
}
}
Ich denke, das Problem mit dem ‚String Wort sein könnte = inFromClient.readUTF(); " Linie? Kann bitte jemand beraten? Vielen Dank.
Und warum lesen Sie zweimal vom Client auf dem Server und dann das erste UTF-Paket verwerfen? Ja, Sie drucken es, aber Sie konvertieren es dann nicht? –
Hier: 'System.out.println (inFromClient.readUTF());' Sie verwerfen, was eingelesen wird. –