A.Z.R.A.E.L. Geschrieben 29. April 2003 Teilen Geschrieben 29. April 2003 Hallo! Ich möchte ein Java Programm unter Windows 2000/XP schreiben, dass alle an mich gesendeten Netsends empfängt und diesen Nachrichtentext+IP des Senders in einem Listenfeld ausgibt. (Nachricht soll somit NICHT als PopUP auftauchen!) Jedoch weiß ich nicht wirklich einen Ansatz um dies zu verwirklichen! Kann mir vielleicht jemand helfen? Danke Azrael P.S.: Version: J2SDK1.4 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 29. April 2003 Teilen Geschrieben 29. April 2003 Ich möchte ein Java Programm unter Windows 2000/XP schreiben, dass alle an mich gesendeten Netsends empfängt und diesen Nachrichtentext+IP des Senders in einem Listenfeld ausgibt. (Nachricht soll somit NICHT als PopUP auftauchen!) Jedoch weiß ich nicht wirklich einen Ansatz um dies zu verwirklichen! Kann mir vielleicht jemand helfen? Ich weiss nicht, on das so einfach nur mit Java möglich ist. Um Windows-Netsends zu empfangen und die Weitergabe an Windows zu blocken wirst du wahrscheinlich ziemlich tief in die Windows API einsteigen müssen - was du mit Java nicht machen kannst. Eine Möglichkeit wäre auch hier höchstens der Zugriff via JNI, dich über C auf die Windows API aufsetzt und von dort aus deine Java Umgebung wieder aufrufst. Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 29. April 2003 Autor Teilen Geschrieben 29. April 2003 Naja von der Verwendung von "native" Methoden bin ich nicht so besonders begeistert, da ich vor allem keine Ahnung hab wie das funktionieren würde... Ich hätte gedacht ich beende den Nachrichtendienst und mach einen Server auf, der den Port überwacht wo die Nachrichten normalerweise hingeschickt werden und diese Nachrichten geb ich dann irgendwie aus (falls die nicht verschlüsselt sind...) So ungefähr wäre halt mein Ansatz... Nur weiß ich weder den Port wo die Nachrichten entgegengenommen werden, noch ob Windows das durchgehen lässt das ich diesen Port belege! Gruß Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 29. April 2003 Teilen Geschrieben 29. April 2003 Hi, du müsstest nicht nur auf dem Port horchen (was kein Problem darstellen sollte), sondern auch das SMB Protokoll auswerten. Zumindest den Teil der für net send zuständig ist. Das stelle ich mir sehr aufwändig vor. Eine fertige Library die sich mit SMB bzw dem Common Internet File System (CIFS) beschäftigt, findest du unter: http://jcifs.samba.org/ Ob damit net send Auswertungen möglich sind, weiss ich allerdings nicht. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 30. April 2003 Autor Teilen Geschrieben 30. April 2003 @Jaraz: Erstmal danke für den Link! Aber ich denke das die sich "nur" mit Dateien befasst haben.... Den Port weißt du zufällig nicht und wo man nachschauen könnte wie so ein netsend aufgebaut ist? Danke Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 30. April 2003 Teilen Geschrieben 30. April 2003 wie so ein netsend aufgebaut ist? Bei Microsoft in der Windows API (http://msdn.microsoft.com/library/) findet sich irgendwo eine Übersicht über die NetXXX Funktionen, da ist dann unter anderem auch NetSendMessageBuffer (order so ähnlich) wo du schonmal NetSends mit verschicken kannst. Da sollte ein JNI Wrapper eigentlich gar nicht mal so kompliziert werden - theoretisch :-) Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 30. April 2003 Autor Teilen Geschrieben 30. April 2003 @Christian: könntest du mir vielleicht erklären wie ein "JNI Wrapper" funktioniert?? Denn wie gesagt: Sowas hab ich noch nie gemacht! Danke Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 30. April 2003 Teilen Geschrieben 30. April 2003 könntest du mir vielleicht erklären wie ein "JNI Wrapper" funktioniert?? Denn wie gesagt: Sowas hab ich noch nie gemacht! Im Prinzip musst du drei Schritte ausführen: (1) Eine Java-Klasse erstellen, in der du eine (oder mehrere) Methoden als native deklariest - in etwa so: public class NativeTestClass { public native void doNativeAction(); } (2) Dann mit dem Befehl javah eine C(++)-Header Datei erstellen. Zu dieser Header-Datei eine Implementierung schreiben und als Library mit dem C(++)-Compiler deiner Wahl eine DLL erstellen. (3) Diese DLL im PATH verfügbar machen und in der Java-Klasse, von der aus du dir native Methode aufrufen willst laden: public class UseNativeClass { static { try { System.loadLibrary("nameDerDLL"); } catch(Exception e) { System.err.println("Could not load required dll"); e.printStackTrace(); } } public static void main(String[] args) { NativeTestClass instance = new NativeTestClass(); instance.doNativeAction(); } } Ist also alles nicht ganz so trivial. Du wirst wohl auch nicht drum herumkommen (wenn du es denn tatsächlich so lösen willst) dich mit C zu befassen und dort die Funktionen zu implementieren. Das war jetzt die ganz kurze Fassung, zum Thema JNI gibt's auch bessere Tutorials, z.B. hier: http://java.sun.com/docs/books/tutorial/native1.1/concepts/ http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=3067&lngWId=2 Ansonsten einfach mal googlen. Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 6. Mai 2003 Autor Teilen Geschrieben 6. Mai 2003 hallo zusammen! also: hab es jetzt geschafft mittels einer nativen Methode ein NetSend zu versenden, diese aber empfangen und zu lesen hab ich noch nicht versucht! die native methode macht nix anderes als einen "mailslot" auf dem Empfänger zu öffnen und die nachricht im (ich glabe) unicode-format zu schreiben! allerdings hilft mir das nicht besonders weiter da ich eigentlich mit meinem programm auch die netsends im linux empfangen wollte(nicht als popup!)... Weiß jemand ob ich mit den Java eigenen Mitteln einen Mailslot öffnen, darein schreiben und die Nachricht lesen kann??? thx Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 6. Mai 2003 Teilen Geschrieben 6. Mai 2003 also: hab es jetzt geschafft mittels einer nativen Methode ein NetSend zu versenden, diese aber empfangen und zu lesen hab ich noch nicht versucht! Was?? *neugier* Ich hab das Testweise auchmal probiert aber hier hat's irgendwie nicht geklappt. Welche API-Funktion hast du denn verwendet? Vielleicht finde ich ja für's Empfangen was. Weiß jemand ob ich mit den Java eigenen Mitteln einen Mailslot öffnen, darein schreiben und die Nachricht lesen kann??? Wie gesagt, da das ganze für mich ziemlich OS spezifisch aussieht wirst du da mit Java pur wohl auch nicht besonders weiterkommen. Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 7. Mai 2003 Autor Teilen Geschrieben 7. Mai 2003 @Christian: der Name der Funktion ist "CreateFile" Da diese Funktion eigentlich "nur" eine Datei erstellt bzw. wenn vorhanden einfach was reingeschreibt, dachte ich mir das ich mit den Java Funktionen eigentlich klappen müsste, oder?? Gruß Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 8. Mai 2003 Teilen Geschrieben 8. Mai 2003 Christian: der Name der Funktion ist "CreateFile" Da diese Funktion eigentlich "nur" eine Datei erstellt bzw. wenn vorhanden einfach was reingeschreibt, dachte ich mir das ich mit den Java Funktionen eigentlich klappen müsste, oder?? Und was hat das jetzt mit NetSend zu tun? *verwirrtsei* Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 8. Mai 2003 Autor Teilen Geschrieben 8. Mai 2003 @Christian: wenn du netsend ausführst wird eine datei auf dem zielrechner erstellt (mailslot/messngr oder so) in dem die nachricht geschrieben wird (als Bytes halt!) Gruß Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 8. Mai 2003 Autor Teilen Geschrieben 8. Mai 2003 Anhang zu Posting von vorher: das bei einem netsend das so abläuft hab ich eben erst später rausgefunden! (vor dem Erstellen des Beitrags!) Ich probier heute mal ob ich mit den Java eigenen Mitteln ein Netsend schreiben kann! Gruß Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 9. Mai 2003 Teilen Geschrieben 9. Mai 2003 wenn du netsend ausführst wird eine datei auf dem zielrechner erstellt (mailslot/messngr oder so) in dem die nachricht geschrieben wird (als Bytes halt!) Aaaaaaah *lichaufgeh*, so funktioniert das. Kannst du mir den Source mal mailen, würde mich mal interessieren. Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 9. Mai 2003 Autor Teilen Geschrieben 9. Mai 2003 hi! also mit den java - eigenen mitteln geht nix! da ich keine Klasse gefunden habe die es mir erlauben würde, wird das eine ziemlich windows spezifsche anwendung! Leider! :-( @Christian: Email - Addy wär nicht schlecht! Gruß Azrael P.S.: (hab mich jetzt durchgerungen auch ne GUI zu machen!) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PerdianMG Geschrieben 9. Mai 2003 Teilen Geschrieben 9. Mai 2003 @Christian: Email - Addy wär nicht schlecht! java@perdian.de Ciao Christian Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.