Zum Inhalt springen

dommes89

Mitglieder
  • Gesamte Inhalte

    42
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von dommes89

  1. Japp für RMI usw. habe ich keine Verwendung... Das ist wirder zu Server abhängig... Habe das ganze nun aber Hinbekommen indem ich mein Objekt mittels ObjectOutputStream in einen ByteArrayOutputStream geschrieben habe und diesen dann per DatagrammPacket gesendet habe... Empfang dann entsprechend umgekehrt... ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(user); oos.flush(); oos.close(); DatagramPacket pack = new DatagramPacket(baos.toByteArray(), baos.size(), InetAddress.getByName(group), port); s.send(pack,(byte)ttl); war zwar ein rumgefuchtel aber hat dann am ende geklappt ^^ Jetzt muss ich nur noch beim Empfangen unterscheiden ob es ein String ist oder ein Objekt wie User... Falls da jemand eine idee hat wär ich natürlich dankbar =) (Also ohne dass irgendwie dazu geschrieben wird "String" oder "User") gruß
  2. Ja also das mit dem serialisieren habe ich auch schon iwo gelesen und auch schon benutzt, jedoch ist das Problem, dass ich den ObjectOutputStream nicht mit dem MulticastSocket verwenden kann... iwie klappt das nur mit normalen Sockets, da mir MulticastSocket nicht den getOutputStream() anbietet... Und wenn ich es mit normalem Socket probiere bring er mir: connect: Address is invalid on local machine, or port is not valid on remote machine iwie muss das doch aber gehen das ganze im Multicast anzuwenden oder? Das mit dem RMI muss ich mir mal genauer anschauen...
  3. So in etwa habe ich mir das auch überlegt... und dann halt anhand des Textes die UserListe zusammenbasteln... Aber eine andere Idee: Ist es bei Multicast auch möglich Objekte zu versenden? Dann könnte man ja zum Beispiel ein Interface anlegen, das die ganzen Informationen enthält und dieses eine eigene zum Beispiel an alle anderen Senden... ICH ----> UserInformation | AN_ALLE Ich hab da ein Beispiel gefunden welches sich aber an Sockets Richtet, mit MulticastSockets leider nicht... das ganze nennt sich dann ObjectOutputStream / ObjectInputStream .... Würde es damit evtl. gehn? Gruß
  4. Okay nun stehe ich vor einem weiteren Problem: Wie kann ich denn bestimmte Informationen übermitteln? Wie zum Beispiel User-Name der angemeldet ist, denn dieses Datagramm liefert mir nur IP-Adresse und Port und so Sachen... Aber wie sehe ich denn z.B. wenn ich mich einlogge, wer alles bereits eingeloggt ist... Also die Informationen die ich sehen möchte.... Name, Anzahl, ID .. usw....?! gruß
  5. Hallo... Ist es möglich wenn ich ein Java Programm fertig habe dieses in eine exe zu packen um diese dann auszuführen und den später laufenden Prozess zu benennen? Also ein Programm mit dem ich eine exe erstellen kann die das gepackte .jar File enthält habe ich schon gefunden... funktioniert auch.. Allerdings macht das ding nichts anderes als die .jar datei temporär zu entpacken und diese dann mit javaw.exe auszuführen... Ich habe vor, dass das ganze dann unter einem eigenen Prozess läuft... Situation: Bei uns in der Schule ist so ziemlich alles an ports usw. gesperrt... einzig: Apache.exe ist auf jeden Port freigegeben und nur diese Exe in genau dem bestimmten Verzeichnis ist frei. So haben wir es durch ersetzen dieser Datei geschafft zugriffe auf das Netzwerk zu bekommen.... Jetzt habe ich nun vor ein Fertiges Java Programm, das auf das Netzwerk zugreifen soll, als apache.exe laufen zu lassen.... Ist dies in irgend einer art zu realisieren? Ein Lösungsansatz habe ich: Bei diesem .jar to exe tool das ich habe kann man einen festen Java classpath angeben bzw. den Pfad wo die javaw.exe liegt, ich könnte das jre verzeichnis mitpacken und dann beim ausführen an die stelle entpacken an der normaler weise die apache.exe liegt.... und diese dann zum ausführen meiner jar datei nutzen... Dies würde auch funktionieren.... Jedoch suche ich nach einem einfacheren Weg... falls eine eine idee hätte würde ich mich freuen =) gruß
  6. Hmm.. okay.. Ja habe jetzt anhand von diesem Simplen Beispiel (link) es jetzt mal hinbekommen =) Habe das entscheidende beim receiven zum test in ne endlos schleife gesteckt und dann mit der send klasse verschiedene texte gesendet.. Kollege ebenso... Hat sehr gut funktioniert =) Jetzt ist das ganze dann natürlich auch kein problem mehr es noch weiter auszubauen... Aber falls jemand trozdem noch ideen und quellen hat immer her damit =)
  7. habe es nun mit der for variante hinbekommen... das reicht in meinem fall danke.
  8. Hmm.. okay. Du hattest gemeint du hättest dich damit schonmal beschäftigt. Weisst du wo es eine gute Quelle gibt bei der ich mich in das Thema MultiCast in Java bezüglich meines Vorhabens einlesen kann? Danke
  9. Okay nach langer Sucher habe ich nun ein paar Programme gefunden, die genau das tun was ich möchte... Für diejenigen die sie sich mal anschauen möchten: kouchat MC2 Chat Das sind nun mal 2 Beispiele die wirklich gut sind und ohne Server laufen und auch funktionieren... Mein einziges Problem: Ich habe bei beiden noch nicht rausgefunden, auf welche art sie das machen, eventuell hat ja einer mal lust sich eines davon anzuschauen (beide sind open source) und eventuell den entscheidenden Teil dann zu berichten. Ichwerde mir das jetzt auch noch weiter genauer anschauen... Gruß
  10. @flashpixx wie läuft das mit dem multicast?
  11. Okay das stimmt... Aber gibt es nicht die möglichkeit, dass user A den socket anbietet und B und C darauf zu greifen, dann wenn user A das Programm schließt user B oder C den Socket übernimmt? Denn die anderen Chats die ich gefunden haben funktionieren ja auch ohne dass iwo noch ein Server läuft... gruß
  12. Hallo... Eine Frage: Und zwar bin ich auf der Suche nach einem Netzwerk-Chat.. Habe da auch schon so einiges gefunden..... allerdings mit Server... Jedoch suche ich eine Möglichkeit wie ich das ganze OHNE Server hinbekommen kann... Habe schon einige Chats ohne Server gefunden, jedoch kein Java. Nun die Frage: Weiss einer eine Methode wie ich dies mit Java lösen kann? Habe schon einen Chat geschrieben... dieser jedoch schreibt und liest aus einer Datei... Ich möchte das ganze jedoch Dateilos über das Netzwerk machen... und ohne dass irgendwo ein Server läuft.. Hoffe jemand hat da Ideen wie ich das ganze hinbekommen könnte bzw. irgendwelche Quellen wo dies schonmal gemacht wurde... Vielen Dank schonmal
  13. Hallo.. Und zwar ein ganz einfaches Beispiel für mein Problem: Ich habe einen Array: string[0] = bla string[1] = bla string[2] = bla string[3] = bla string[4] = bla Jetzt wird der array bei index 2 beispielsweise rausgelöscht... string[0] = bla string[1] = bla string[2] = NULL string[3] = bla string[4] = bla Wie bekomme ich es nun hin, dass alle stellen die dahinter sin nach oben aufrücken? ==>> string[0] = bla string[1] = bla string[2] = bla string[3] = bla string[4] = NULL Hoffe mir kann da jemand weiterhelfen... Gruß
  14. ja ich weiss.... das mit der farbe fällt flach... der Text soll wirklich nicht da sein... display: none mach JEditorPane irgendwie nicht .... habe ich auch schon probiert ja es geht darum dass ich die zeilen zähle die im HTML-Quellcode sind anhand des attributes id=FORTLAUFENDE-NUMMER ... Und die zeilen die nach der Ausgabe nicht erscheinen sollen sollen aber trotzdem im quellcode existieren... gruß
  15. Hallo ... Und zwar möchte ich nicht sichtbaren Text in einem HTML-formatierten JEditorPane ausgeben.... Habe es shcon mit HTML kommentaren versucht, jedoch wird dann der Text ganz am Ende beim abrufen mit .getText() ausgegeben (<!-- -->) .... und style="display: none;" scheint nicht zu gehen, da er kein css kann.... gibt es ne möglichkeit mit der ich style nutzen kann oder das Problem irgtendwie anders umgehen kann? der Text soll einfach dort sein wo ich ihn im html qeullcode hinschreibe... nur unsichtbar nach ausgabe im JEditorPane.... danke..
  16. Ahso okay: Bedingungen: Eine Grafik c:\x.gif existiert 1. Ausführen des Programms -> Man sieht ein Fenster mit einem JButton und einem JTextPane 2. Klick auf den Button -> Es wird das Icon c:\x.gif in JTextPane eingefügt 3. Ich ersetze in c:\ das Icon x.gif mit einem anderen x.gif 4. Klick auf den Button -> Es wird das Icon eingefügt das vorher schon eingefügt wurde -> Erwartet wurde, dass nun ein anderes Icon einfügt wird, da es ja geändert wurde 5. Neustart des Programms 6. Klick auf den Button -> Nun wird das gewünschte Icon eingefügt Wie gesagt: Warum? und Wie kann man das umgehen? Gruß
  17. wie gesagt, habe ich ja jetzt schon gemacht.. habe das ganze drum herum weggelasse und nur einen button erstellt der ein image einfügt.. Jedoch wenn ich es zur Laufzeit des Programms ändere dann fügt er trotzdem immer noch das bereits eingefügte ein und nicht das neue überschriebene Icon... =/ Gibts es nicht so etwas wie z.b. ein refresh des icons bevor das programm es einfügt? Gruß
  18. Okay ich habe rausgefunden, dass das gar nicht an dem code ansich liegt... Ich hab jetzt mal was ganz einfaches gebaut: einen Button der beim klick das macht: jTextPane1.insertIcon(new ImageIcon(image_path+System.getProperty("user.name")+".gif")); ich klicke ein paar mal drauf, dann geh ich in das verzeichnis, lösche die datei, nehem eine andere Grafik nenne sie genauso wie die eben und drücke wieder paar mal drauf, jedoch fügt er immer noch die alte grafik ein... WIESO ist das so? Und wie kann ich das UMGEHEN? Hoffe einer hat ne Idee... gruß
  19. Hallo.. und zwar habe ich mir einen JFileChooser angelegt der eine ausgewählte Datei an einen anderen Ort kopiert und diese (Eine Grafik) im JTextPane anzeigen lässt... Problem: Ich wähle eine Datei aus, er kopiert diese an den bestimmten Ort, und fügt diese dann in das JTextPane ein. Nun wähle ich eine weitere Datei aus, er kopiert diese an den bestimmten Ort und fügt danach die 1. Datei wieder in das JTextPane ein... und nicht die als zweites ausgewählte ?!?! so als wäre sie irgendwo zwischengespeichert... ich finde aber nirgends wo dies der Fall sein könnte... Hier mal der Code.. private JFrame getJFrame1() throws IOException { jFileChooser1 = new JFileChooser(); int status = jFileChooser1.showOpenDialog(null); if (status == JFileChooser.APPROVE_OPTION) { File selectedFile = jFileChooser1.getSelectedFile(); imageImport(selectedFile.getPath()); } else if (status == JFileChooser.CANCEL_OPTION) { System.out.println("canceled"); } insertImageIntoText(); return jFrame1; } private void imageImport(String gifFile) throws IOException{ File fromFile = new File(gifFile); File toFile = new File(image_path+System.getProperty("user.name")+".gif"); FileInputStream inFile = new FileInputStream(fromFile); FileOutputStream outFile = new FileOutputStream(toFile); FileChannel inChannel = inFile.getChannel(); FileChannel outChannel = outFile.getChannel(); int bytesWritten = 0; long byteCount = inChannel.size(); while (bytesWritten < byteCount) { bytesWritten += inChannel.transferTo(bytesWritten, byteCount - bytesWritten, outChannel); } inFile.close(); outFile.close(); } private void insertImageIntoText() throws IOException{ image = new ImageIcon(image_path+System.getProperty("user.name")+".gif"); jTextPane1.insertIcon(image); } Schauts euch bitte mal an und ich hoffe ihr könnt mir dann helfen =/ Gruß
  20. Also.. Ich habe für unsere FI-Klasse nen Chat gebastelt.. für die Schule, der auch funktionieren soll, ohne dass das Internet im Raum freigeschaltet wurde. Es liegen ein paar dateien in einem Tausch Verzeichnis auf dem Server, der immer verfügbar ist, in die die Daten gepeichert werden... z.B. der Chatlog.. Die Icons wollte ich deswegen extra mit in das File packen, damit sie nicht irgendwo auf dem Server rumliegen und dies jemand dann bemerkt. Das ist ja auch kein Problem, denn sobald ich ich einer Datei, auf die beim ausführen des Files immer überprüft wird, ändere (die Versions-Nummer des Chats) zieht sich die Datei automatisch die Version im Ordner aufm Server und überschreibt sich, sollte die Version nicht übereinstimmen... Also Packe ich irgendwann mal neue Smilies rein, dann bekommen die Leute die das File nutzen sicher beim nächsten ausführen nach dem nächsten start. Und ausserdem habe ich ja nicht vor dort jeden Tag neue Smilies reinzupacken, das war einfach nur für mich ne Vereinfachung, damit ich, wenn ich nicht irgendwann dort neue Icons einfüge, den ganzen Quellcode nochmal ändern muss... so stecke ich einfach smilies rein, oder nehm welche raus, ändere die Versions-Nummer und dann passt die Sache... Es läuft ja jetzt auch alles inzwischen.. ich hab das dann alles hinbekommen... Also hier mal der Code wie ich das jetzt mache: File filename = new File(ChatAdmin.class.getProtectionDomain().getCodeSource().getLocation().toURI()); /** Icons for run class in .jar */ if(filename.getName().contains(".jar")){ icon_path = "jar:"+filename.toURI()+"!/data/smilies/"; JarFile jf = new JarFile(filename); Enumeration e = jf.entries(); int entryCount = -1; while (e.hasMoreElements()) { JarEntry je = (JarEntry) e.nextElement(); if(je.getName().contains("data/smilies/")){ String name = je.getName(); entryCount++; } } try{ Enumeration z = jf.entries(); i = 0; icons = new ImageIcon[entryCount]; while (z.hasMoreElements()) { JarEntry je2 = (JarEntry) z.nextElement(); if(je2.getName().contains("data/smilies/")){ String name = je2.getName(); try{ URL imgURL = ChatAdmin.class.getResource(name); icons[i] = new ImageIcon(imgURL); }catch(IndexOutOfBoundsException df){ } i++; } } }catch(NullPointerException npe){ } /** Icons for run class in .java */ }else{ // Sets icon_path icon_path = "data/smilies/"; try{ // Looks into the file directory File dir = new File(icon_path); File[] fileList = dir.listFiles(); i = 0; icons = new ImageIcon[fileList.length]; for(File f : fileList) { try{ // defines all smilies icons[i] = new ImageIcon(icon_path+f.getName()); }catch(IndexOutOfBoundsException df){ } i++; } }catch(NullPointerException npe){ } } Also am anfang überprüft er erstmal ob ich das Teil so rennen lass oder als .jar Datei, und je nach dem baut er sich halt die Icons dann zusammen. Gruß Dominik
  21. ich kenne aber die dateinamen nicht^^ das ist ja gerade das Problen^^ ich habe das alles so geschrieben, dass ich einfach nur wenn ich ein icon mehr haben möchte, eines in den ordner dazu legen muss^^ er soll dort ja dann durch iterieren und dann anhand der verfügbaren files die icons erstellen...
  22. Okay habe nun rausgefunden wie man das Stammverzeichnis, also den Name des .jar Files, der Klasse herausfindet: File filename = new File(ChatClient.class.getProtectionDomain().getCodeSource().getLocation().toURI()); Gruß
  23. Okay, also ich habe es nun hinbekommen mein gewünschtes verzeichnis auszulesen... somit werd ich das dann hinbekommen. JarFile jf = new JarFile(filename); Enumeration e = jf.entries(); while (e.hasMoreElements()) { JarEntry je = (JarEntry) e.nextElement(); if(je.getName().contains(icon_path)){ String name = je.getName(); System.out.println(name); } } Was nun noch ein Problem ist: der filename?! Wie bekomme ich den filename des .jar archives heraus... z.B. fall es umbenannt wurde. ich hatte da heute schon irgendwas mit class.getRessource() gesehen ja... aber ich weiss nicht mehr wie das war... Kannst du das genauer erläutern? Gruß
  24. ja tue ich... ja hab e ich probiert, bringt aber nichts... und das mit dem im .jar verzeichnisse auslesen bekomm ich auch noch nicht so auf die reihe..
  25. Also das mit deiner Idee die Dateien in einen Anderen Ordner zu legen hat nicht geklappt... zwar beim ausführen in eclipse usw. jedoch nicht nach dem Packen in .jar.. D.h. ich werde wohl wirklich das ganze über ZIP archiv oder irgendwas auslesen müssen. Gruß

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...