Entwickler-Ecke
Internet / Netzwerk - Indy Problem
gala - Di 01.07.03 09:58
Titel: Indy Problem
Hallo Leute,
ich habe Server in Delphi geschrieben(TIdTCPServer). Client ist bei mir in JAVA geschrieben. Also, wenn ich was an Server schicke, wird OnExecute-Ereigniss ausgelöst. Bei mir muss es so sein:
1. Client schickt Daten: An Server wird Server.OnExecute := ServerExecute; ausgelösst.
2. Aus dieser Methode(ServerExecute) wird andere Methode aufgerufen. Hier ist Code von ServerExecute:
//alle Daten werden in rec gespeichert
rec.add(AThread.Connection.AllData);
//Rückgabewert von test wird in ergebniss gespeichert
ergebniss := test(rec);
//Hier schicke ich das Ergebniss zurück (aber funktioniert nicht)
AThread.Connection.OpenWriteBuffer;
AThread.Connection.WriteBuffer(ergebniss.DataString,SizeOf (ergebniss.DataString),true);
AThread.Connection.CloseWriteBuffer;
3. Jetzt muss ich eigentlich dieses Ergebniss an Client zurückschicken und das klappt nicht :(
Das Problem ist vielleicht, dass Client in JAVA geschrieben ist, hier ist Code:
Socket con = new Socket("localhost", 4000);
PrintWriter out = new PrintWriter(new OutputStreamWriter
(con.getOutputStream()));
BufferedReader in = new BufferedReader(new InputStreamReader
(con.getInputStream() ) );
out.write("1");
out.flush();
char[] b = new char[5];
in.read(b);
con.close();
Wenn ich die Zeile "in.read(b)" wegmache, dann wird die Methode(ServerExecute) bis Ende gemacht, aber ich kriege dann das Ergebniss nicht. Mit dieser Zeile bleibt das hängen, Client wartet, bis Server irgendwas schickt.
Was soll ich dann machen? In TIdTCPServer gibt es kein Ereigniss OnClientRead oder so was ähnliches :(
Danke im Voraus
Gala
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!