# Java Chat Programm



## Kunz (7. Mai 2009)

Hallo,

ich soll ein Chat Programm programmieren, aus den beiden Programmen Client und Server, die ich schon programmiert habe. Die soll ich zu *einem* Chat Programm verbinden. Kann mir jemand helfen? Wie muss ich das machen? Wie sieht dann der Quellcode aus? VIelen Dank.

```
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.util.Scanner;

public class Client implements Runnable {

    private String host = "192.168.178.9";

    public Client(String host) {
        if (host != null) {
            this.host = host;
        }
    }

    @Override
    public void run() {

        Socket s = null;
        BufferedReader in = null;
        BufferedWriter out = null;
        try {
            s = new Socket(host, 8888);
            in = new BufferedReader(new InputStreamReader(s.getInputStream()));
            out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

            Scanner console = new Scanner(System.in);
            while (true) {
                out.write(console.nextLine() + "\n");
                out.flush();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (s != null) {
                try {
                    s.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    public static void main(String[] args) {
        if (args.length == 0) {
            new Thread(new Client(null)).start();
        } else {
            new Thread(new Client(args[0])).start();
        }
    }

}
```


```
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class Server implements Runnable {

    @Override
    public void run() {

        ServerSocket ss = null;
        Socket s = null;
        BufferedReader in = null;
        BufferedWriter out = null;
        try {
            ss = new ServerSocket(8888);
            s = ss.accept();
            in = new BufferedReader(new InputStreamReader(s.getInputStream()));
            out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
            while (true) {
                System.out.println(in.readLine());
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (s != null) {
                try {
                    s.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (ss != null) {
                try {
                    ss.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    public static void main(String[] args) {
        new Thread(new Server()).start();
    }

}
```


----------



## sliwalker (8. Mai 2009)

Hi,

der Quellcode sieht hoffentlich danach noch so aus wie vorher...

Generell wird Dir hier niemand Deine Aufgabe erledigen und der Eindruck entsteht, auf Grund deiner Formulierung.
Das was "Du" dort schon programmiert hast, übrigens ein hervorragender Programmierstil für einen Anfänger (weiter so), ist die Basis eines Chatprogramms. Aber das weißt Du sicher, denn Du hast es ja geschrieben.
Da Du doch schon so hervorragend im Thema bist, frage ich mich, was genau Du hier von uns erfahren willst?

Bitte konkretisiere Deine Frage.
Die meisten helfen gerne, wenn Du es zumindest versuchst und trotz erheblicher Eigenleistung nicht weiter kommst.

greetz
SLi


----------



## Michael... (8. Mai 2009)

sliwalker hat gesagt.:


> übrigens ein hervorragender Programmierstil für einen Anfänger


Naja, man könnte die Variablen (s, ss) noch ein bisschen aussagekräftiger benennen ;-)


----------

