# serversocket soll anfrage vom handy entgegennehmen



## Andre H. (23. Okt 2006)

Okay so langsam bin ich verzweifelt.. da ich nun langsam nicht mehr weiß wer schuld ist das es nicht klappt.

Das Serverprogramm oder das Programm in J2ME. um wenigstens was auszuschließen können  frage ich euch deshalb


```
package ****;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	      try {
	          ServerSocket listenSocket = new ServerSocket(9800);
	          System.out.println("listening on port " + 9800);
	          Socket connectionSocket = listenSocket.accept();
	          BufferedReader br = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));

	          String text = br.readLine();
	          System.out.println(text);

	          br.close();
	          connectionSocket.close();
	          listenSocket.close();

	       } catch (IOException e) {
	          // TODO Auto-generated catch block
	          e.printStackTrace();
	       } 
		
 		System.out.println("Ende");	
		
	}

}
```

seht ihr hier einen fehler... wenn nein dann kann es ja nur an dem anderem Programm liegen.. 

ich will doch erstmal nur etwas empfangen :-(

bitte um eure mithilfe


----------



## robertpic71 (23. Okt 2006)

Die Angaben sind etwas dürftig (passiert etwas, Fehlermeldung?, passiert nichts..). Deshalb nur etwas "geraten":

1. Firewall / Routing - gelangt man überhaupt zum Serverport?

2. Kommt ein CR/LF nach? Du liest mit ReadLine - das wartet auf ein Zeilenende. Versuche mal das byteweise auszulesen und auszugeben. Oder auf schnelle kannst du auch nach dem Accept ein Sytem.out einbauen, wenn das kommt liegt es zu 99.9% am Cr/Lf.

Robert


----------



## Andre H. (23. Okt 2006)

kurze frage: was meinst du mit CR und LF?


----------



## robertpic71 (23. Okt 2006)

Andre H. hat gesagt.:
			
		

> kurze frage: was meinst du mit CR und LF?



Damit meine ich den Zeilenvorschub (siehe auch >> Wiki <<).

Du empfängst in deinem Serverprogramm die Daten mit 

```
String text = br.readLine();
```

Das Programm bleibt solange stehen, bis die Daten(zeile) mit dem Zeilenvorschub (in Java machbar mit "\n") beendet wird. Vielleicht hat dein Programm ja schon Daten erhalten aber es wurde kein "\n" nachgesendet...

Zur weiteren Fehlersuche solltest du nach dem Socket connectionSocket = listenSocket.accept(); ein System.out.println("Verbindung steht"); einbauen. Dann weißt du, ob du überhaupt ein Verbindung hast. 

Wenn ja, versuch auf dem Client ein "\n" anzuhängen. Im normalen Java verwende ich einen PrintStream für die zeilenweise Kommunikation, da wird automatisch der Zeilenvorschub angehängt, aber keine Ahnung ob es den im JavaME gibt.

Robert


----------



## Andre H. (25. Okt 2006)

okay vielen dank für deine hilfe... es  fehlt wirklich das  zeilen ende.. danke dir


----------

