# Client/server sollen ständig lauschen ob was ankam?



## Guest (7. Mrz 2008)

Hallo zusammen,

ich bastel gerade ein kleinen Instant Messenger, komme auch ganz gut voran, allerdings schaffe ich es nicht, das der Client bzw Server laufend nachschaut, ob die Gegenseite was geschickt hat.

Meine Methoden sehen bisher so aus,

zum connecten zum Server:


```
public void Connect(String ip) throws IOException
	{
		server = new Socket(ip, 3141);
		
		in = new BufferedReader(new InputStreamReader(server.getInputStream()));
		out = new PrintWriter(server.getOutputStream());


	}
```

zum senden:

```
public void SendMessage(String message) throws IOException
	{
		out.println(message);
	}
```

Wie müsste ich nun in der Server Anwendung was einbauen damit er immer nach ankommenden Texten schaut?
Mein erster Gedanke war ein eigenen Thread dafür, der gestartet wird sobald die Verbindung steht, aber das hat nicht Funktioniert:

```
Thread listen = new Thread(new Runnable() {
						public void run() {
							try {
								strIncommingMessage = in.readLine();
							} catch (IOException e) {
								e.printStackTrace();
							}
							txtMessage.append("Server: "+strIncommingMessage+"\n");
					}});
					listen.start();
```

Kann mir da jemand ein Tip geben?


----------



## SlaterB (7. Mrz 2008)

der Code in der run-Operation muss in eine (Endlos-)schleife,
sonst wird nur eine Zeile gelesen


----------



## Guest (7. Mrz 2008)

Oh mist das ist bereits in einer Endlos-Schleife, habe aus versehen eine alte Version gepostet!

Hab das Problem aber grade selbst gelöst, es lag daran das ich ausgehende nachrichten erst über:

out.flush();

losschicken musste


----------



## tuxedo (7. Mrz 2008)

Naja, losgeschickt hast du sie auch so. Nur lagen sie noch im Puffer. Wenn du halt ne 8k großen Puffer hast, dann gehen die Daten erst raus wenn der Puffer gegen 8k voll wird. Liegen nur 4k drin, dann verweilen die eben noch etwas bevor sie rausgehen.

DU kannst, wenn du nur wenig Daten schickst, auch den Puffer kleiner machen.

- Alex


----------

