Hi Leute.
Ich programmiere grade mit Java eine Websteuerung für ein Visual Basic Modul.
Die Verbindung wird über TPC hergestellt (Java-seitig ein normaler ClientSocket, VB-seitig ein WinSock), das Java-Programm ist der Client, das VB-Programm der Server. Das Herstellen der Verbindung funktioniert auch und ich kann auch Streams verschicken. Allerdings habe ich noch zwei Probleme: Einerseits werden die Antworten des VB-Moduls bei mir erst ausgegeben, wenn das VB-Programm beendet wurde (Ich vermute ein Problem mit dem Puffer von BufferedReader) und zweitens weiß ich nicht, wie ich eine Ereignisstreuerung für den ClientSocket schreibe, also das wenn eine Antwort vom Server kommt, das er dann eine bestimmte Methode ausführt. Hier ist meine Java-Code:
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;
class Com
{
public static void communication(BufferedReader reader, BufferedReader in, StringBuffer buffer, PrintStream out)
throws IOException
{
String command = reader.readLine();
out.print(command);
String input = in.readLine();
if (input != null)
{
buffer.append(input);
System.out.println(input.toString());
}
}
public static void main(String args[])
{
try
{
Socket cs = new Socket(args.length == 0 ? "localhost" : args[0], 4003);
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader in = new BufferedReader(new InputStreamReader(cs.getInputStream()));
StringBuffer buffer = new StringBuffer();
PrintStream out = new PrintStream(cs.getOutputStream());
communication(reader, in, buffer, out);
}
catch(/*UnknownHostException is a*/ IOException e)
{
System.err.println("Es ist ein Fehler aufgetreten. Das Programm wird nun beendet.");
return;
}
}
}
Kann mir jemand bei einem der beiden oder besser beiden Probleme helfen? Danke.
MfG
Jan
Lesezeichen