Ansics
Cadet 4th Year
- Registriert
- Mai 2003
- Beiträge
- 107
Hi,
ich bekomm keine Kommunikation über zwei Sockets zwischen meinem Handy und dem PC hin. Das ganze klappt noch nichtmal im Emulator von Sun ... also hier mal kurz ganz einfach was ich mache (Exceptionhandling und den anderen Kram mal beiseite gelassen).
1) Server macht folgendes:
Wie gesagt. Der Code ist gekürzt. Die Idee ist, dass der Server nach Inizialisierung der Verbindung ne Schleife startet in der immer wieder das gleiche gemacht wird (Nachricht an den Client zurücksenden). Der Client macht folgendes:
Der Client soll also durch drücken auf einen Knopp die Methode sendReceive aufrufen. Der Plan ist so:
Der Server blockiert sobald die Methode readLine erreicht ist (funktioniert auch). Durch Drücken auf "senden" wird sendReceive aufgerufen und der Client sendet was (klappt anscheinend nicht, da die Methode readLine vom Server nach wie vor blockiert ist. Der Client sollte dann zumindest bei isr.read() stehenbleiben, da ja kein Inhalt im Stream ist, da der Server ja noch nichts senden kann, weil er blockiert ist (Client bleibt aber nicht bei isR.read() stehen sondern rattert weiter). Auch wenn ich nochmal senden drücke bügelt der Client über diese Zeilen m unter weg ohne ein blockierendes Lesen heraufzubeschwören.
Was um alles in der Welt mach ich falsch?
VG
Ansics
ich bekomm keine Kommunikation über zwei Sockets zwischen meinem Handy und dem PC hin. Das ganze klappt noch nichtmal im Emulator von Sun ... also hier mal kurz ganz einfach was ich mache (Exceptionhandling und den anderen Kram mal beiseite gelassen).
1) Server macht folgendes:
Code:
serverSocket = new ServerSocket(8080);
clientSocket = serverSocket.accept();
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream()));
while (true) {
lastReceivedMessage = in.readLine();
out.write(lastReceivedMessage.toUpperCase());
out.newLine();
out.flush();
}
Wie gesagt. Der Code ist gekürzt. Die Idee ist, dass der Server nach Inizialisierung der Verbindung ne Schleife startet in der immer wieder das gleiche gemacht wird (Nachricht an den Client zurücksenden). Der Client macht folgendes:
Code:
socket = (SocketConnection)Connector.open("socket://localhost:8080", Connector.READ_WRITE);
is = socket.openInputStream();
os = socket.openOutputStream();
osS = new PrintStream(os);
isR = new InputStreamReader(is);
public void sendReceive() {
osS.print(message);
osS.flush();
isR.read
}
Der Client soll also durch drücken auf einen Knopp die Methode sendReceive aufrufen. Der Plan ist so:
Der Server blockiert sobald die Methode readLine erreicht ist (funktioniert auch). Durch Drücken auf "senden" wird sendReceive aufgerufen und der Client sendet was (klappt anscheinend nicht, da die Methode readLine vom Server nach wie vor blockiert ist. Der Client sollte dann zumindest bei isr.read() stehenbleiben, da ja kein Inhalt im Stream ist, da der Server ja noch nichts senden kann, weil er blockiert ist (Client bleibt aber nicht bei isR.read() stehen sondern rattert weiter). Auch wenn ich nochmal senden drücke bügelt der Client über diese Zeilen m unter weg ohne ein blockierendes Lesen heraufzubeschwören.
Was um alles in der Welt mach ich falsch?
VG
Ansics