Het zal wel weet iets heel kleins zijn maar ik breek me hier echt mn kop op, ik heb een Client en een Server klasse die connecten met elkaar en de server gaat dan non-stop wat naar de client sturen (via de outputstream). Maar op de een of andere manier krijgt de Client het niet binnen..
Dit zijn de klassen:
TestServer.java
TestClient.java
Start uiteraard eerst de server op en dan connect de client, het connecten gaat goed maar het uitwisselen van gegevens gaat fout.. ik dacht zelf dat ik per ongeluk de in- en outputstreams had verwisseld maar dat is echt niet zo
Ik flush ook netjes..
Wie helpt?
p.s. Ik weet dat de code een rotzooi is, maar dit is alleen om ff dit probleempje op te lossen.
Dit zijn de klassen:
TestServer.java
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| import java.io.*; import java.net.*; public class TestServer { private ServerSocket ssock; private BufferedReader in; private BufferedWriter out; public TestServer() { try { ssock = new ServerSocket(7152); Socket s = ssock.accept(); in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); } catch (Exception e) { e.printStackTrace(); } System.out.println("connectie gemaakt"); run(); } private synchronized void run() { try { int test=1; for (;;) { wait(500); System.out.println("Writing #"+test); out.write("SENDING #"+test); out.flush(); test++; } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { new TestServer(); } } // end of class |
TestClient.java
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| import java.net.*; import java.io.*; public class TestClient { private Socket s; private BufferedReader in; private BufferedWriter out; public TestClient() { try { System.out.println("Attempting to connect .."); makeConnection(); } catch (Exception exc) { System.out.println("Connection failed .. \n"); System.exit(0); } System.out.println("connection established"); run(); } private void run() { String s; try { System.out.println("Trying to read from input\n"); while (true) { s = in.readLine(); System.out.println("received: "+s); } } catch (IOException ioe) { System.out.println("Connection lost ..\n"); } } private void makeConnection() throws Exception { s = new Socket("localhost",7152); in = new BufferedReader(new InputStreamReader(s.getInputStream())); out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); } public static void main(String[] args) { new TestClient(); } } // end of class |
Start uiteraard eerst de server op en dan connect de client, het connecten gaat goed maar het uitwisselen van gegevens gaat fout.. ik dacht zelf dat ik per ongeluk de in- en outputstreams had verwisseld maar dat is echt niet zo
Wie helpt?
p.s. Ik weet dat de code een rotzooi is, maar dit is alleen om ff dit probleempje op te lossen.