Ik wil een applicatie maken in J2ME die communiceert met een server, geschreven in J2SE. Deze moeten via een eenvoudige zocket verbinding communiceren. Nu wil de mobile client alleen niet lezen en ik kan het probleem niet vinden, hopelijk ziet hier iemand het probleem.
De server:
En in de mobiele client heb ik dit staan:
Het probleem: De mobiele client blijft hangen en dus leest hij de socket niet uit, volgens mij. Toen ik de server alleen iets liet sturen en dit liet uitlezen werkte het wel en kreeg ik het karakter terug, toen ik de server alleen liet lezen en de client een string liet sturen werkte het prima. Maar als ik eerst een string naar de server stuur en dan de server antwoord laat sturen werkt het niet.
Ziet iemand wat ik hier fout doe? Dit zijn beide voorbeelden van de java.sun pagina's en ik kom er met Google niet uit.
De server:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| public static void main(String[] args) { System.out.println( "Starting SmartServer Test Environment" ); try { ServerSocket srv = new ServerSocket( 12345 ); Socket s = srv.accept(); BufferedReader in = new BufferedReader( new InputStreamReader( s.getInputStream() ) ); PrintWriter out = new PrintWriter( s.getOutputStream(), true); String line = in.readLine(); System.out.println( line ); out.println("K"); in.close(); out.close(); s.close(); srv.close(); } catch ( Exception e ) { System.out.println( e.toString() ); } // try - catch } // main |
En in de mobiele client heb ik dit staan:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| String url = "socket://" + this.host + ":" + this.port; SocketConnection sc = (SocketConnection) Connector.open(url); sc.setSocketOption(SocketConnection.DELAY, 0); sc.setSocketOption(SocketConnection.KEEPALIVE, 0); InputStreamReader in = new InputStreamReader( sc.openInputStream() ); OutputStreamWriter out = new OutputStreamWriter( sc.openOutputStream() ); out.write("TEST"); int c = 0; c = in.read(); System.out.println( (char)c ); in.close(); out.close(); sc.close(); |
Het probleem: De mobiele client blijft hangen en dus leest hij de socket niet uit, volgens mij. Toen ik de server alleen iets liet sturen en dit liet uitlezen werkte het wel en kreeg ik het karakter terug, toen ik de server alleen liet lezen en de client een string liet sturen werkte het prima. Maar als ik eerst een string naar de server stuur en dan de server antwoord laat sturen werkt het niet.
Ziet iemand wat ik hier fout doe? Dit zijn beide voorbeelden van de java.sun pagina's en ik kom er met Google niet uit.
Read the code, write the code, be the code!