Java Applet: Hilfe gesucht

Miraculixx

Erfahrenes Mitglied
Hi!
Ich habe mich gerade erst hier registriert, ich hoffe ich verstoße nicht gegen irgendwelche regeln, bin ganz neu :)

aber hier gleich mal mein problem:
Ein Freund von mir und ich haben ein Chat-Programm in Java mithilfe von Sockets geschrieben (funktionalität ist vergleichbar mit ICQ).
Es gibt einen server und einen client. Ein freund von mir hat den server auf seinem rechner daheim installiert, der läuft dort tag und nacht, die ports sind alle freigeschalten.
wenn ich den client auf meinem rechner als programm ausführe, kann ich mich zwar zum server verbinden. aber sobald ich eine nachricht an einen anderen benutzer senden möchte, muss eine verbindung zu diesem user aufgebaut werden, die jedoch nicht zustande kommt.

weiters habe ich das programm auch als Java-Applet auf eine Seite eingebunden. wenn ich dieses applet starte, kommt überhaupt keine verbindung zum server zustande.

setup fürs programm gibts hier: http://miraculixx.mi.funpic.de/comm/
das applet ist hier: http://www.bhdcom.at.tf

den source-code kann ich morgen hier reinstellen, den muss ich erst mal wieder zum laufen bekommen ;)

aber vielleicht hat jetzt schon jemand eine idee, woran es liegen könnte, dass da keine verbindungen zustande kommen?
ich hoffe ich habe mein problem halbwegs verständlich formuliert, ansonsten fragt einfach nach.

Vielen dank, Miraculixx!
 
Ich sehe 2 Potentielle Fehlermöglichkeiten:

1) Erzeugt euer Server auch wirklich Threads?
2) Ihr habt einen Fehler im Thread - Handling. Wahrscheinlich habt ihr so eine Konstellation wie while (Stream != null) und habt dabei vergessen dass der Stream nie != null wird. Ist aber ohne Quellcode recht schwer festzustellen.
 
Ja ich weiß, ohne Quellcode ist nicht viel möglich. Bei mir haut der Quellcode zur zeit aus unerklärlichen Gründen nicht hin, obwohl ich eigentlich nichts geändert habe.
Also der Quellcode den ich jetzt habe (erzeugt mit JCreator 2.5):
Client: http://s36.yousendit.com/d.aspx?id=26TOCJRYZVMY20PKFAX37WGE4
Server: http://s43.yousendit.com/d.aspx?id=30D3WDWVVYRA61QS1D0F0ZT7RC

Wenn ich am abend wieder zu Hause bin, kann ich die RAR-Datei (14kb) dann auf einen normalen Server legen.

Und noch zur Info: Verbindungen zwischen Server und Clients funktionieren, wenn alles in einem Netzwerk läuft. Es haut eben nur nicht so ganz hin, wenn das alles übers Internet läuft.
Ich werde es heute Abend noch einmal versuchen, mit ausgeschalteter Firewall und ohne Router, aber eigentlich hätte ich das alles schon einmal gecheckt. Aber man kann ja nicht wissen, vielleicht liegts ja doch an dem Router.... ;)

Und vielen Dank erst mal für deine Antwort! :)

PS: noch kurze Infos für alle, die so mutig sind, und sich den Quellcode ansehen möchten:
Für Client: "ComClient.java" ist die Start-Klasse. Im falle des Applets wird das ganze Programm durch die Klasse "ComStart.java" angeworfen.
In MainFrame Zeile 120 wird die Connection zum Server aufgebaut, eigenartigerweise hatte ich jetzt auch noch einen Fehler in "connection.java" zeile 56, wo die Liste aller angemeldeten User vom Server empfangen wird.
Für Server: Startklasse ist "Bhdcommunicator.java", in Zeile 51 wird der Server aufgerufen.

Ich wäre euch wirklich sehr dankbar, wenn sich jemand die Mühe macht, sich diesen Quellcode durchzusehen, oder auch für jegliche andere Tipps. sobald ich es selber irgendwie hingebogen bekomme, werde ich mich natürlich sofort melden!
 
Zuletzt bearbeitet:
Ähm ich denke mal es wird ganz einfach daran liegen, dass ein Applet nicht zu einem anderen PC außer dem PC sich verbinden kann, von welchem es heruntergeladen wurde. Jedoch besteht die Möglichkeit Applets zu signieren ... google hilft da sicher weiter.
 
Oh, stimmt, an dem könnte es liegen! ;)
Na gut, dann ist die Sache mit dem Applet erst einmal gegessen.
Aber wenn ich das Programm von der Festplatte aus starte, dann geht es ja fast, die Verbindung haut hin, aber ich kann keine Verbindung zwischen den Usern aufbauen (also keine Nachrichten verschicken). Hast du auch noch eine Idee, woran das liegen könnte?
 
Halt kleiner Denkfehler: Das Chat - Applet nimmt eine Stream Verbindung zum Chat Server auf, dieser leitet die Daten an alle anderen Applet Chat Clients weiter.
Basta. Sollte auch ohne Signatur funktionieren.
 
Mal erlich gesagt ist mir das Projekt etwas zu gross um es wirklich durchzulesen.

Wozu ist der Server eine Runnable? Muss doch nicht sein, schließlich startet ein Server immer einen neuen Thread. Ich kann mir wirklich nur allzugut vorstellen dass du die Streams nicht richtig abhändelst...
Hast du eine Fehlermeldung?
 

Neue Beiträge

Zurück