Hallo,
ich habe ein einfaches Server- und Clientprogramm geschrieben, nur gibt es da ein kleines Problem. Hier erstmal der Code(größtenteils aus den Vala Tutorials übernommen):
Server:
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 | void process_request (InputStream input, OutputStream output) throws Error { var data_in = new DataInputStream (input); string line; while ((line = data_in.read_line (null)) != null) { stdout.printf ("%s\n", line); } string content = "Hello!"; stdout.printf ("Geschickt?: %lu\n", output.write (content.data)); output.flush (); } int main () { try { var service = new SocketService (); service.add_inet_port (1337, null); service.start (); while (true) { var conn = service.accept (null); process_request (conn.input_stream, conn.output_stream); } } catch (Error e) { stderr.printf ("%s\n", e.message); } return 0; } |
Client:
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 | class Client : Object { public Client () { var add = new InetAddress.from_string ("127.0.0.1"); try { var sock = new SocketClient (); var conn = sock.connect (new InetSocketAddress (add, 1337)); conn.output_stream.write ("test\n".data); var response = new DataInputStream (conn.input_stream); var line = response.read_line (null); stdout.printf ("erhaltene Nachricht: %s\n", line); } catch (Error e) { stdout.printf ("error: " + e.message + "\n"); } } public static int main () { new Client (); return 0; } } |
Es klappt soweit, dass der Server den empfangenen Text ausgibt, nur wird die Antwort nicht zurückgeschickt. Erst wenn ich den Client beende, wird die Nachricht versandt, was natürlich zu spät ist. ☹ Hat jemand ne Idee? Danke