schon wieder Comport-Problem

Status
Nicht offen für weitere Antworten.
M

Marfir

Aktives Mitglied
Hallo,

ich habe ein Programm geschrieben, dass Daten von einem seriellen Comport einliest und das in eine Datei schreibt.
Mein Problem:

Wie frage ich das ab, dass er nur solange einlesen soll, wie wirklich Daten gesendet werden? Die Schleife bicht nicht ab, auch wenn die Übertragung schon beendet ist.
Ich schätze mal da werden irgend welche Befehle gesendet (so was ähnliches wie NOOP bei ftp), so dass die immer TRUE ist.

Habt ihr ne Idee?

Code:
BufferedWriter bw = new BufferedWriter (new FileWriter("c:\\Download\\test.dat"));
while (com1.getInputStream().available() > 0)
{
    bw.write(x);
    bw.newLine();
}
bw.close();
 
M

Mag1c

Top Contributor
Moin,

liest du die Daten auch ein ? Wie soll man denn in nem halben Code-Fragment einen Fehler entdecken ? :wink:

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Naja weil meiner Meinung nach es nur an der Stelle hängt. Aber bitteschön, hier die ganze Funktion:

Code:
public void comverbindung()
    {
        //Verbindung zu Comport 1 aufbauen
        //server: com1
        Enumeration en = CommPortIdentifier.getPortIdentifiers();
        while (en.hasMoreElements()) 
        {
            CommPortIdentifier cpi = (CommPortIdentifier)en.nextElement();
            if (cpi.getPortType() == CommPortIdentifier.PORT_SERIAL)
            {
                if (cpi.getName().equals(server))
                {
                    try
                    {
                        int daten;
                        SerialPort com1 = (SerialPort)cpi.open(server, 1000);
                        try
                        {
                            com1.setSerialPortParams(57600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
                        }
                        catch (Exception e)
                        {
                            errorsave("Beim setzen der Parameter für den seriellen Comport " + server + " trat ein Fehler auf.\nEs wird versucht trotzdem eine Verbindung aufzubauen.\n");
                        }
                        
                        OutputStreamWriter out = new OutputStreamWriter(com1.getOutputStream());
                        out.write("\r\n");
                        //Verbindung hergestellt
                        byte[] readBuffer = new byte[100];
                        try
                        {
                            String x="daten";
                                int numBytes = com1.getInputStream().read(readBuffer);
                                x = new String(readBuffer);
                                errorsave(x);
                                out.write(username);
                                out.write("\r\n");
                                x = new String(readBuffer);
                                errorsave(x);
                                out.write(passwort);
                                out.write("\r\n");
                                x = new String(readBuffer);
                                errorsave(x);
                                try
                                {
                                    BufferedWriter bw = new BufferedWriter (new FileWriter("c:\\test.txt"));
                                    while (com1.getInputStream().available() > 0)
                                    {
                                        bw.write(x);
                                        bw.newLine();
                                    }
                                    bw.close();
                                }
                                catch (Exception e)
                                {
                                    errorsave("Fehler schreiben der Datei vom Comport (" + e.toString() + ")!");
                                }
                            out.close();
                            com1.getInputStream().close();
                        }
                        catch (IOException e)
                        {
                            errorsave("Fehler beim schreiben/lesen auf/vom Comport (" + e.toString() + ")!");
                        }
                        com1.close();
                    }
                    catch (PortInUseException e)
                    {
                        errorsave("Der Comport ist in Benutzung und kann nicht verwendet werden (" + e.toString() + ")!");
                    }
                    catch (IOException e)
                    {
                        errorsave("Es wurde nicht der serielle Comport gefunden, der konfiguriert ist (" + e.toString() + ")!");
                    }                
                }
          }     
        }


Die errorsave() ist eine weitere Funktion, die aber nichts mit dem Problem zu tun hat.

Jetzt vll ne Idee?
 
M

Mag1c

Top Contributor
Oha,

ich dachte, du hättest da was rausgeschnitten. Ich versteh nicht so ganz, was du genau machen willst. Du liest genau einmal was ein. Was danach passiert, ergibt für mich keinen Sinn !? Auf jeden Fall bleibt er dann in einer Endlosschleife hängen, falls nach deinem Lesen auch nur ein einziges Bytes angekommen ist. Dann ist available() > 0 und das bleibt auch so, da du ja nichts mehr liest.

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Stimmt du hast recht. Das hab ich ganz übersehen, dass da noch eine Zeile in der Schleife fehlt. ^^
 
M

Marfir

Aktives Mitglied
Ich habs jetzt etwas umgeschrieben, aber nun geht nicht mal mehr das senden. Wie mach ich das jetzt am besten? Ich glaub ich code das nochmal neu. :shock:

Ich will erst an den Comport paar Daten senden und dann die Antworten in eine Datei schreiben.
Hat jemand ne Idee?
 
M

Mag1c

Top Contributor
Hi,

na das ist doch garnicht so kompliziert. Mit dem OutputStreamWriter sendest du einen String. Mit einem BufferedReader kannst du zeilenweise empfangen. Und mit einem FileWriter chreibst du in die Datei. Wichtig ist, daß du dich an das Protokoll deiner Gegenstelle hälst (wer schickt/empfängt wann welche daten). Wichtig ist auch, in welchem Format der Text verschickt wird (ASCII?) und ganz wichtig, mit welchem Zeilenende gearbeitet wird (CR, CR+LF, LF oder egal).

Gruß
Mag1c
 
G

Guest

Gast
@ Mag1c

Ja und wieso geht das dann nicht? Was kann ich an meinem Code verändern das das klapt?

Ich hab jetzt auch die Funktion als Thread umgeschrieben, so das sich nicht die ganze GUI aufhängt, wenn ich mal wieder ne Endlosschleife produziere. Komischerweise machts das aber trotzdem.
Wenn ich eine normale Endlosschleife code

Code:
while (true)
{
}

dann reagiert die GUI noch. Blos bei dem Comport nicht. Wieso das?
 
M

Marfir

Aktives Mitglied
Habe das Problem jetzt eingegrenzt:

int numBytes = com1.getInputStream().read(readBuffer);

Sobald ich das mache hängt er sich auf. Wieso?


Und ich hab mal das ganze eingelese weggelassen. Jetzt werden zwar die Daten gesendet, aber doppelt. Die Comports auf beiden Seiten sind aber richtig konfiguriert. Woran könnte das nun wieder liegen?
 
M

Mag1c

Top Contributor
Hi,

wie ist denn das Protokoll definiert ? Der Ablauf müsste ungefähr so sein:

Code:
OutputStreamWriter out = new OutputStreamWriter(com1.getOutputStream());
BufferedReader in = new BufferedReader(com1.getInputStream());
FileWriter fout = new FileWriter("c:\\test.txt");
...
// schreiben
out.write(username); 
out.write("\r\n");
...
// lesen
String x = in.readLine();
...
// loggen
fout.write(x);
out.write("\r\n");

Wie dort wo welche Schleife einzubauen ist, hängt eben vom Protokoll ab.

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Hm ok ich probiers mal aus. Ich dachte aber mit com1.getInputStream().read(readBuffer); wird eingelesen. Oder ist das nur für byte-Übertragungen und in.readLine(); für ASCII?


Ist "\r\n" das selbe wie newLine() ?
 
M

Mag1c

Top Contributor
Hi,

Marfir hat gesagt.:
Hm ok ich probiers mal aus. Ich dachte aber mit com1.getInputStream().read(readBuffer); wird eingelesen.

Ja, damit wird auch eingelesen, aber eben auf byte-Ebene. Es wird versucht, soviele Bytes zu lesen, wie in das Array passen. Kommen weniger rein, werden entsprechend weniger gelesen (siehe Rückgabewert).

Marfir hat gesagt.:
Oder ist das nur für byte-Übertragungen und in.readLine(); für ASCII?

Der BufferedReader ist für das Lesen von Strings geeignet. An ihm kann man auch das Encoding einstellen (wenn man ein anderes benutzt). readLine() ist eine bequeme Methode, um zeilenweise zu lesen. Das erspart einem das lästige zusammensuchen bis zum Zeilenende. Wenn du mit read aus dem InputStream liest, hört er ja beim Zeilenende nicht auf. Du mußt also explizit in dem Array nachschauen, wo ist denn die Zeile eigentlich zuende.

Marfir hat gesagt.:
Ist "\r\n" das selbe wie newLine() ?

Nein, ist es nicht. Die Methode newLine() schreibt das OS-spezifische Zeilenende (bei Win = 0x0D 0x0A und bei Linux nur 0x0A). Während bei "\r\n" auch unter Linux 0x0D 0x0A geschrieben wird. Abgesehen davon hatte ich nicht den BufferedWriter genommen und daher gab es die Methode newLine() nicht.

EDIT: das mit dem Encoding am BufferedReader muß ich zurücknehmen, das stimmt so nicht. Aber readLine() ist trotzdem ganz praktisch :wink:

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Wenn ich das so mache wie du das aufgeführt hast wird nichts ausgegeben aber richtig eingelesen. Am ende kommt dann noch:

javax.comm.PortInUseException: Port currently owned by COM1

Wieso zeigt der das nicht an? Muss das "out" und "in" in getrennten typ{}-Blöcken stehen?
 
M

Mag1c

Top Contributor
Hi,

mein Code von oben war eher als Beispiel gedacht. In welcher Reihenfolge du was machst, kann ich nicht sagen, da ich leider nicht weiß, wie dein Protokoll aufgebaut ist. Poste doch mal den aktuellen Code.

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Vorgegangen wird wie folgt:

"\r\n" senden
username senden
passwort senden
Die jetzt ankommenden Daten in eine Datei schreiben.


Habs jetzt teilweise neu gecodet:

Code:
    //public void comverbindung()
    public class comverbindung extends Thread
    {
        
        comverbindung()
        {
            //start
            run();
        }
        
        public void run()
        {
            Enumeration en = CommPortIdentifier.getPortIdentifiers();
            while (en.hasMoreElements()) 
            {
                CommPortIdentifier cpi = (CommPortIdentifier)en.nextElement();
                if (cpi.getPortType() == CommPortIdentifier.PORT_SERIAL)
                {
                    if (cpi.getName().equals(server))
                    {
                        try
                        {
                            SerialPort com1 = (SerialPort)cpi.open(server, 1000);
                            try
                            {
                                //57600, Xon/Xoff
                                com1.setSerialPortParams(57600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
                            }
                            catch (Exception e)
                            {
                                errorsave("Beim setzen der Parameter für den seriellen Comport " + server + " trat ein Fehler auf (" + e.toString() + "). Es wird versucht trotzdem eine Verbindung aufzubauen.");
                            }

                            OutputStreamWriter out = new OutputStreamWriter(com1.getOutputStream());
                            BufferedReader in = new BufferedReader(new InputStreamReader(com1.getInputStream())); 
                            FileWriter fout = new FileWriter("c:\\test.txt"); 

                            out.write("\r\n");
                            out.write(username); 
                            out.write("\r\n"); 
                            out.write(passwort);
                            out.write("\r\n");

                            String x = "";
                            while (com1.getInputStream().available() > 0)
                            //while (((x=in.readLine()).equals(""))==false)
                            {
                                x=in.readLine();
                                status.setText(status.getText() + x + "\n");
                                fout.write(x); 
                                fout.write("\r\n");
                            }
                            fout.close();
                        }
                        catch (Exception e)
                        {
                            errorsave(e.toString());
                        }
                    }
                }
            }
        }
        }

Mein Problem:
1.
Es wird auf dem Zielrechner nichts ausgegeben und es kommt immer eine "PortInUseException", am Ende der Verbindung.

2.
Das in.readLine() ist mist. Das liest solange bis ein "Enter" vom Gegenüber gesendet wird. Ansonsten "hängt" alles!
Gibts da ne Möglichkeit des Time-outs oder sowas?


Was bisher funktioniert:

Daten einlesen und in Datei schreiben.
 
M

Mag1c

Top Contributor
Hi,

ok, vom Aufbau her sieht es jetzt schon besser aus.

Die Gegenstelle sendet auch wirklich erst dann die ersten Daten, nachdem es den username/passwort Block empfangen hat ? Es kommt zwischendurch kein "Login:" oder "Jetzt das Passwort:" oder sowas ? Mach mal nach jedem write ein flush und schau mit available() nach, ob irgendwelche Daten anliegen.

Was ist denn jetzt wieder der "Zielrechner" ?

Wie startest du die "comverbindung" ? Etwa so: new comverbindung().start() o.ä. ?

Hmm, ja, wenn du nicht weißt, wie viele Zeilen kommen, geht das mit readLine() nicht. Dann mußt du aber, wie ich oben schon geschrieben habe, die gelesenen Daten selbst in Zeilen zerhacken.

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Hi,

ok, vom Aufbau her sieht es jetzt schon besser aus.
----------
Danke.
Und danke für deine Hilfe. :)
----------
Die Gegenstelle sendet auch wirklich erst dann die ersten Daten, nachdem es den username/passwort Block empfangen hat ? Es kommt zwischendurch kein "Login:" oder "Jetzt das Passwort:" oder sowas ? Mach mal nach jedem write ein flush und schau mit available() nach, ob irgendwelche Daten anliegen.
----------
Nein es kommt dazwischen auch schon vor, dass Daten gesendet werden. Aber die interessieren mich nicht. Ich will nur die Daten haben, die nach eingabe des Passworts gesendet werden.
----------
Was ist denn jetzt wieder der "Zielrechner" ?
----------
Na die Gegenstelle. Der PC am anderen Ende des Kabels. ^^
----------
Wie startest du die "comverbindung" ? Etwa so: new comverbindung().start() o.ä. ?
----------
Ja genau so. Und das klapt auch. Es hängt nur wenn das readLine() keine Daten bekommt. Bei jeder anderen Endlosschleife hängt die GUI nicht.
Wie kann man das anders machen?
----------
Hmm, ja, wenn du nicht weißt, wie viele Zeilen kommen, geht das mit readLine() nicht. Dann mußt du aber, wie ich oben schon geschrieben habe, die gelesenen Daten selbst in Zeilen zerhacken.
----------
Oh gott das ist zu kompliziert. Dann mach ich einfach einen Timeout? Oder kann man abfragen wieviele Bytes bisher empfangen wurden? Weil ich schätz mal mehr als 10 kb werden nicht ankommen.
Das könnte man doch in Verbindung mit einem Timeout implementieren oder?
Weis nur nicht wie...^^
----------
Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Sehr interessant. Als ich flush gemacht habe gibt er jetzt was aus.

Aber:
javax.comm.PortInUseException: Port currently owned by COM1

Kommt immernoch nach der Beendigung der Verbindung. Woran kann das liegen?
 
M

Mag1c

Top Contributor
Hi,

du solltest zwischendurch die Daten auch dann empfangen, wenn sie dich nicht interessieren. Ich bin mir grad nicht sicher, aber ich glaub, du kannst nix senden, solange die Gegenstelle noch sendet. Kannst das ja mit einer Methode machen

Code:
public void readCrap (BufferedReader in) throws IOException {
    int c;
    while ((c = in.read()) >= 0)
        System.out.print((char) c);
}

die rufst du einfach nach jedem "out.write("\r\n");" auf. (Das System.out ist nur zum debugging drin, damit du siehst, daß da was "überlesen" wird.

new comverbindung().start()

LOL. Daher kommt diese PortInUseException. Im Konstruktor rufst du run() auf, wo dann die ganze Kommunikation stattfindet. Erst, wenn er da durch ist, startest du mit "start()" den Thread, welcher wiederum nochmal run() aufruft (diesmal im Hintergrund). Und da du den com-Port nach dem ersten Durchlauf nicht geschlossen hast, knallt es nun.

Gruß
Mag1c
 
M

Marfir

Aktives Mitglied
Ja Seriell bedeutet lesen oder schreiben zu einem Zeitpunkt. Betonung auf "oder", also nicht "und". ^^


Tat Sache. Die Exception ist jetzt weg. Habe auch noch nen close() hinzugefügt. Aber das muss einem doch gesagt werden, dass das run() von selbst aufgerufen wird. ^^


Danke. Jetzt geht ja erstmal alles. Wenn nicht meld ich mich nochmal. :lol:
 
F

Frank

Gast
Hallo, ist das Programm denn jetzt lauffähig???

Hat vieleicht jemand das fertige Programm und würde es hier zur verfügung stellen, da ich grade an einem ähnlichen Programm arbeite....aber nicht wirklich weiter komme....???

Dank im voraus!!!
 
M

Marfir

Aktives Mitglied
Frank hat gesagt.:
Hallo, ist das Programm denn jetzt lauffähig???

Hat vieleicht jemand das fertige Programm und würde es hier zur verfügung stellen, da ich grade an einem ähnlichen Programm arbeite....aber nicht wirklich weiter komme....???

Dank im voraus!!!

Hallo Frank,

mein Programm funzt auf handelsüblichen PC's mit 0-Modem-Kabel. Bei dem Rechner wo es zum Einsatz kommen sollte, versagte aber der Gegenüber den dienst (es gabt zu viele Probleme), so das es jetzt bleibt.
Der Quellcode steht oben. Was geht denn bei dir nicht?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Schon wieder Regex Problem :-/ Allgemeine Java-Themen 6
J Nicht schießen - schon wieder OpenOffice. Allgemeine Java-Themen 4
L schon wieder der "javac nicht gefunden" fehler Allgemeine Java-Themen 9
U schon wieder regex Allgemeine Java-Themen 3
F Cardlayout prüfen ob schon vorhanden, keine doppelten Allgemeine Java-Themen 3
Thallius Herausfinden ob ein externes Programm schon gestartet ist? Allgemeine Java-Themen 10
S ExecutorService.invokeAll -- was passiert wenn einige Tasks schon ausgefuehrt wurden? Allgemeine Java-Themen 2
O Schon verbundene Punkte nicht erneut verbinden Allgemeine Java-Themen 7
GUI-Programmer Jar File funktioniert nicht auf PC2, auf PC1 schon Allgemeine Java-Themen 13
ARadauer Schon mal jemand für Ungarn CSV Datein geschreiben? Allgemeine Java-Themen 2
reibi Workspace schon geöffnet (Kein Eclipse Thema) Allgemeine Java-Themen 14
P J2EE EJB Einstieg - hängt schon am XDoclet + Eclipse Allgemeine Java-Themen 5
T läuft mein Programm schon? - wie feststellen Allgemeine Java-Themen 6
S Schon gewusst? Allgemeine Java-Themen 33
bummerland Wie lange programmiert ihr schon in Java? Allgemeine Java-Themen 10
jmar83 “non blocking console input” wieder rückgängig machen? Allgemeine Java-Themen 1
W Vererbung Generics - mal wieder die verhaßte Rückwärtskompatibilität Allgemeine Java-Themen 2
V Scheinbar zufällig hin und wieder: Can't create an ImageOutputStream! Allgemeine Java-Themen 8
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
2 String Array in Datei schreiben und wieder davon lesen Allgemeine Java-Themen 2
F JLabel nach 5 Sekunden wieder leeren Allgemeine Java-Themen 7
Thallius Dateien Zippen und wieder heraus lesen? Allgemeine Java-Themen 4
S Zahlen aus (String mit zahlen) immer wieder neu auslesen Allgemeine Java-Themen 5
NicoDeluxe Input/Output Variablen in Datei Speichern um sie wieder auszulesen Allgemeine Java-Themen 4
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
M Regex... mal wieder Allgemeine Java-Themen 3
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
B Mal wieder "Could not find the main class" Allgemeine Java-Themen 3
C Datentypen int in bytes zerlegen und wieder zusammen setzen Allgemeine Java-Themen 13
S Strings gehen "kaputt" wenn ich in CVS ein und wieder auschecke. Allgemeine Java-Themen 2
F Wieder mal die eBay API Allgemeine Java-Themen 3
E Speicherverwaltung bzw. Speicher wieder frei geben?! Allgemeine Java-Themen 8
T JConsole: Klassen werden geladen aber nicht wieder entladen Allgemeine Java-Themen 3
S Thread vorübergehend stilllegen und wieder aufwecken Allgemeine Java-Themen 18
data89 A-Stern: fährt immer wieder vor die Wand! - Hilfeeee Allgemeine Java-Themen 7
L Thread kurz unterbrechen und wieder starten Allgemeine Java-Themen 5
L Applet immer wieder neu laden - Problem Allgemeine Java-Themen 25
T RegEx, wieder einmal ... :-( Allgemeine Java-Themen 19
S Wieso stehen in der API immer wieder abstrakte Methoden ? Allgemeine Java-Themen 7
C Aus XML ein DOM Objekt und wieder zurück Allgemeine Java-Themen 2
M wieder mal applet probleme Allgemeine Java-Themen 17
A HTML-Seite wieder schließen Allgemeine Java-Themen 2
W Wieder einmal: PNG ausdrucken Allgemeine Java-Themen 3
S GUI komplett schließen und wieder Neu laden? Allgemeine Java-Themen 4
C Bild in .txt speichern und wieder als Bild speichern Allgemeine Java-Themen 2
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18
A String in umgekehrter reihenfolgen wieder geben Allgemeine Java-Themen 16
GilbertGrape mal wieder ne Regex-Frage Allgemeine Java-Themen 2
A Javakonsolenfenster geht gleich wieder zu Allgemeine Java-Themen 6
M Variablen Speicher wieder freigeben ? Allgemeine Java-Themen 9
L Werte in externer Datei speichern und wieder auslesen? Allgemeine Java-Themen 8
M Programm schließen und wieder neu starten Allgemeine Java-Themen 9
E Wieder mal der Classloader Allgemeine Java-Themen 6
R Immer wieder NullPointerException Allgemeine Java-Themen 2
L JVM: Speicher wieder für OS freigeben? Allgemeine Java-Themen 5
I Aus Exception wieder zurück Allgemeine Java-Themen 5
J Thread beenden und wieder starten? Allgemeine Java-Themen 20
M Array in eine Datei Schreiben und wieder auslesen Allgemeine Java-Themen 10
S Job immer wieder ausführen Allgemeine Java-Themen 4
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
P Filechooser öffnet sich immer wieder neu Allgemeine Java-Themen 4
L Speicherplatz eies RIESEN objektes direkt wieder freigeben Allgemeine Java-Themen 5
V Irgendwie benutzt er wieder Java 1.4 Allgemeine Java-Themen 7
G Array/String aus Request wieder in Array konvertieren Allgemeine Java-Themen 2
A gemaltes wieder löschen Allgemeine Java-Themen 24
U Mal wieder DoubleBuffering Allgemeine Java-Themen 20
A Thema JAR-Erstellung (mal wieder) => etwas komplizierter Allgemeine Java-Themen 8
T Objekte eindeutig zerlegen und wieder zusammen bauen? Allgemeine Java-Themen 6
B mal wieder jar! Allgemeine Java-Themen 53
S JPanel zur Laufzeit verbergen bzw. wieder anzeigen lassen Allgemeine Java-Themen 4
C Über C/C++ (JNI) angeforderten Speicher wieder frei geben Allgemeine Java-Themen 3
M statische regex und vergleiche oder immer wieder compilen Allgemeine Java-Themen 2
R Aus InputStream wieder eine Datei erzeugen? Allgemeine Java-Themen 2
M Mal wieder . Regular Expressions Allgemeine Java-Themen 2
J Mal wieder jars Allgemeine Java-Themen 2
T CMD nach aufruf von javaw Programmname wieder schließen Allgemeine Java-Themen 3
J String mit GZIPInputStream in Datei schreiben und wieder les Allgemeine Java-Themen 2
J User Klasse in den Vector, Object Klasse wieder raus... Allgemeine Java-Themen 4
D Bilder einlesen, bearbeiten und wieder in Datei schreiben Allgemeine Java-Themen 3
G Adressen in Datei speichern und wieder auslesen Allgemeine Java-Themen 3
F rxtx library mit virtuellem Comport Allgemeine Java-Themen 2
T [RXTX] GPS-Maus (Comport) effizient auslesen Allgemeine Java-Themen 6
S virtuelles Comport mit Java? Allgemeine Java-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben