# WebSocket Server mit HTML Client und Java Server



## Dreieck (5. Mrz 2021)

Mein Client (in HTML geschrieben) schickt per Websocket mir ein Nachricht. Dabei habe ich das Problem, dass, wenn mein Server die Nachrichten lesen möchte, die Nachricht vom Client in UTF-8 ist. Mein Server würde dann die Nachricht aber als ASCII interpretieren. Nur, ich finde nirgenso wo im Internet eine Möglichkeit, die Eingabe als UTF-8 zu lesen und dann als ASCII in einen String zu schreiben. Danke schonmal im vorraus.


----------



## mrBrown (5. Mrz 2021)

Was für ein Server ist es denn?


----------



## Dreieck (5. Mrz 2021)

[CODE lang="java" title="Server"]import java.io.*;
import java.net.*;

class ConnectionHandler implements Runnable{
    private Socket socket;
    public ConnectionHandler(Socket socket) {
        this.socket = socket;
    }

    public void run() {
        getClientMessage(socket);
    }

    private void getClientMessage(Socket socket){
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            while(in.ready()) {
                String input = in.readLine();

                System.out.println("Client: " + input);              
            }
        } catch (Exception exception) {

        }
    }
}

public class Server {
    private ServerSocket server1;
    private int port;

    public Server(int port) {
        this.port = port;
        try {
            server1 = new ServerSocket(port);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void startServer(){
        try {
            while(true) {
                Socket socket = null;
                socket = server1.accept();
                Thread thread = new Thread(new ConnectionHandler(socket));
                thread.start();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        System.out.print("Port: ");
        Server server = new Server(new Scanner(System.in).nextInt());
        server.startServer();
    }
}[/CODE]
Also das ist mein Server. @mrBrown


----------



## kneitzel (5. Mrz 2021)

Also dem InputStreamReader kannst Du bei der Erstellung auch das CharSet mitgeben. Also wenn da UTF-8 verwendet wird, dann kannst Du das entsprechend bei der Erstellung angeben:




__





						InputStreamReader (Java SE 11 & JDK 11 )
					





					docs.oracle.com


----------



## mrBrown (5. Mrz 2021)

Du kannst dem InputStreamReader StandardCharsets.UTF_8 übergeben


----------



## Dreieck (5. Mrz 2021)

OMG, vielen vielen Dank!!!


----------

