Wie kann man .txt Files übers Internet verschicken?

JJK3

Aktives Mitglied
Wie kann man .txt Files übers Internet verschicken?
Für ein Chat Programm wüsst ich das gern!!
Oder wenn das geht würde es auch reichen einen String zu verschicken!!

Hat jemand eine wie das zu realisieren ist?

Nach möglichkeit ohne server sondern von computer zu computer!!

Danke
 
T

trääät

Gast
ganz primitiv :

verbindung aufbauen
daten lesen
über socket senden
auf der gegenseite vom socket lesen
und wieder als file rausschreiben

bei weiteren fragen poste bitte direkt im netzwerk-forum ...
 
M

Marcinek

Gast
Wie sieht dein Ansatz aus?

Hast du mal gegoogelt, wie man das macht? - Strings verschicken ist das primitivste, was man machen kann.

Das steht schon millionenfach im Internet. Vor allem wenn du schon ein chat hast, dann siehst du es.
 
T

träät

Gast
erstens mal das ... also das ein chat dir schon alle grundlagen liefert ... und zweitens findest du alles was du brauchst zum thema "daten via socket" auch mehrfach mit den unterschiedlichsten lösungen wie ich bereits sagte im netzwerk-subforum ... oder halt bei google ...

es bedarf also keiner mehrfachen wiederholung von bereits gesagtem
 

JJK3

Aktives Mitglied
Hab im Internet jetzt mal genauer geguckt und naja ich finde zwar chat programme die über server laufen, aber keine direkte verbindung.

Hast du nen link oder so?

Danke
 
M

Marcinek

Gast
Zwischen Server und Client gibt es immer eine direkte Verbindung.

Wie sieht bei dir die Planung aus? - Hast du zwei Clients? - Wenn ja, dann muss einer davon ein Socket öffnen und der andere verbindet sich damit.
 
T

trääät

Gast
naja ... ohne "Server" wird es schon komplizierter ... denn das einzige was wirklich 100% ohne server auskommt ist UDP mit direkten angaben der ziel-IPs und -Ports ... ansonsten brauchst du immer einen server ... gleich ob als normale TCP-broadcast-schleuder oder als STUN-helper ...
 

JJK3

Aktives Mitglied
Meine Idee ist:
Der eine ist sozusagen der Host, der/die andere/n der Client.
Aber ich hab keine Ahnung wie man das Technisch macht!!

Danke
 
T

trääät

Gast
gut ... das würde dann aber wieder vorraussetzen das mindestens einer in seinem router die ports frei gibt ... und sowas sollte man vermeiden ...

wenn es dir nicht möglich ist einen STUN-helper zu organisieren klick dich wirklich mal bitte durchs mitlerweile mehrfach erwähnte netz-forum ... dort haben wir auch eine möglichkeit des STUN-helpers mit hilfe eines free-hosters erörtert ... sollte meiner ansicht nach auch genau so funktionieren ... auch wenn polling nicht wirklich das gelbe vom ei ist ...

deinen fragen kann man entnehmen das du scheinbar über keinerlei wissen für das thema verfügst ... da frage ich mich ernsthaft wie du dann einen "chat" zusammen bekommen hast (vermutlich irgendwo demo-code kopiert) ...

du solltest dich erstmal grundsätzlich mit dingen wie File-I/O, Streams, Sockets und ein bisschen allgemeinwissen über netzwerkprogrammierung beschäftigen ...
es gibt zwar halbwegs fertige lösungen ... aber wenn du nicht mal bereit bist diese zu suchen obwohl dir schon gesagt wurde wo und nach was ... dann solltest du nicht erwarten das dir hier jemand wirklich schritt für schritt "den brei vorkaut" ...
 

JJK3

Aktives Mitglied
Naja,

Ich komme mit File und Streams zurecht.
Aber von Ports und Sockets hab ich keinerlei ahnung, geschweige denn ports freizugeben. Wie man Code-Technisch so etwas bewerkstelligt!!!

Danke
 
T

trääät

Gast
gut ... wenn du erkannt hast was du noch nicht kannst von dem was du brauchst dann weist du doch zumindest was du dir jetzt mal zu gemüte führen solltest ... ergo : gibt die begriffe bei google ein und versuch so viel wie möglich an informationen zu bekommen ... erstmal grundlagen und dann speziell für java ...
bis du mit sowas einfach aus der rückhand umgehen kannst brauchts allerdings ein paar tage bis wochen und intensives training ...

wie ich ja bereits sagte : ich kann mir irgendwie nicht vorstellen wie du an einen chat gekommen bist obwohl dir die grundalgen dazu fehlen ... aber solltest du da was halbwegs brauchbares haben kannst damit ja mal anfangen ...

auch immer wieder gerne : Java Platform SE 7 ... da findet sich defintiv ALLES
und kommt jetzt bitte nicht mit "gibts das auch auf deutsch" ... denn wirklich : wer programmieren will sollte schon englisch können
 

JJK3

Aktives Mitglied
Chill :)

Kann ich nicht meinen PC zum "Server" machen?
Sodass sich dann alle Clients zu mir verbinden!?

P.S.: hab mich mal über Sockets informiert, habs auch geblickt nur weitergeholfen hats mir nicht sonderlich!!
 

freez

Top Contributor
Kann ich nicht meinen PC zum "Server" machen?

natürlich. Ist zwar nicht der Weg, den man Standardmäßig geht, aber klar ... es geht. Du musst nur sicherstellen, dass dein "PC" für die Clients erreichbar ist (Bedenke Firewall / DSL Router wenns übers INet ist).

Aber von Ports und Sockets hab ich keinerlei ahnung, geschweige denn ports freizugeben. Wie man Code-Technisch so etwas bewerkstelligt!!!

Das wäre aber Voraussetzung, wenn du so eine Anwendung entwickeln möchtest. Egal ob dein PC der "Server" ist, oder einer im Rechenzentrum

[EDIT]Was mir spontan einfällt: Im Netz gibt es jede Menge Beispiele (vielleicht sogar hier im Forum): java simple chat example. Da sollte doch was zu finden sein, was du dir anschauen kannst. Wenn du diese einfachen Beispiele verstehst, sollte es doch kein Problem sein. Und wenn nicht ???:L : wir sind hier und beantworten gern deine Fragen :D [/EDIT]
 
Zuletzt bearbeitet:
T

Trolllllll

Gast
Wie kann man .txt Files übers Internet verschicken?
  • E-Mail-Programm auch
  • Mailadresse des Empfängers bei neuer e-Mail angeben
  • Die .txt-Datei als anhang anhängen
  • Senden drücken
Ist ziemlich simple, aber wow es funktioniert, sogar über das i-net, nicht nur zum Nachbar-PC
Ansonsten ja schau dir mal die Beispiele zu Java-Chats an, gibt es zu genügent im i-net, programmiere das dann selber und bei Problemen, diese dann hier im Forum stellen ;-)
 

JJK3

Aktives Mitglied
Um ehrlich zu sein, beides ein bischen!! :oops:
Hab dich nämlich nicht ganz verstanden!! :(
Aber kann mir nicht einfach jemand sagen wie ich ports freigebe??
Anstatt mich in Seitenlangen Abhandlungen, dafür fertigzumachen nichts bei google zu finden??
(Im Notfall kann ja einer ein google ergebnis zittieren!?)

Danke
 
T

Trolllllll

Gast
Da ich nicht weiß, was für einen Router du verwendest,... eher schlecht, aber gehe auf deinen Router und dort müsst es sowas wie Portweiterleitung oder so geben, und da musst du dann deinen gewünschten Port an deine IP-Adresse deines PC-weiterreichen ;-)
 
T

trääät

Gast
ich schließ mich mal meinem namens-faker und seinem e-mail post an ...

@TO
wenn du es auf biegen und brechen nicht hinbekommst ... und ich denke mal ein großteil der probleme dürfte sein das du dich mit den nötigen klassen und den dazu nötigen informationen nicht genug beschäftigst ... dann lass es doch halt einfach ...

es bringt nichts wenn dir jetzt hier einer n stück code schreibt den du dann nicht einsetzen kannst weil dir eben das eine oder andere halt einfach fehlt ... oder eben das wissen dafür ...

und dann wäre ne e-mail echt der einfachste weg ...

es wurde jetzt mehr als oft genug auf ganz simple chat-beispiele verwiesen ... denn die bieten alles was man braucht ... und wenn es nur text sein soll kann man diese codes sogar direkt so nutzen wie sie sind ... nur musst du dich auch mal damit beschäftigen und dich durch viele seiten text und hilfe lesen ... und das auch wirklich begreifen und verstehen ...
denn es ist genau so witzlos dir hier duzende wiki- und foren-artikel zu linken oder gar zu zitieren wenn du diese nicht verstehst ...

nur im gegensatz zu manch anderen sagst du uns aber auch nur "rall ich nich" ... anstatt mal wirklich zu sagen WAS GENAU du eben nicht verstehst und wobei du fragen hast wie das oder jenes funktioniert ...

langsam verliert man echt den nerv weil man sich wie der letzte **** vorkommt wenn man dir helfen will ... von dir aber nicht mal rüberkommt das du es versuchst ... und dann hat man auch irgendwann keine lust mehr weil man ja eh doch nur gegen ne wand redet ... zumindest geht es mir so ...

ich wiederhole es jetzt ein allerletztes mal und werd mir dann so deine weiteren erfolge kommentarlos ansehen : es wurde ALLES notwendige genannt was man braucht um das was du vorhast umzusetzen ...
entweder du nutzt jetzt mal selbst google und versuchst das auch zu verstehen und zu begreifen ... und kannst dann gerne hier fragen zu KONKRETEN problemen stellen ...
oder du lässt es einfach bleiben und nutzt etablierte standards ... denn du bist ja mit deinem wissensstand scheinbar nicht mal in der lage VORLAGEN zu nutzen und zum laufen zu bekommen
 

Olli_M

Mitglied
Für den Anfang ist es sicher auch nicht verkehrt, die Client- und die Serveranwendung erstmal auf demselben PC laufen zu lassen. Klassisches Beispiel Port 8189 und localhost (statt IP Adresse).
Dazu muss man normalerweise auch nix freischalten.

Wenn das dann lokal funktioniert, dann hat man ja schon den Hauptteil von dem Code, den man braucht. Dann den Schritt zu machen, und die 2 Programme auf 2 PCs zu verteilen, und dieses Mal mit IP Adresse zu verbinden statt localhost, ist ja nicht mehr so wild.

Olli
 

JJK3

Aktives Mitglied
Zitiere mich mal selbst:
Aber kann mir nicht einfach jemand sagen wie ich ports freigebe??

[EDIT]Danke Oli-Ich guck mal!![/EDIT]
 
M

Marcinek

Gast
Steht doch schon weiter oben.

Versteh nicht, wieso man hier noch Googleergebnise hinkopieren muss.

Einfach mal googeln.
 
T

trääät

Gast
Zitiere mich mal selbst:
Aber kann mir nicht einfach jemand sagen wie ich ports freigebe??

ERSTENS : WARUM SOLLTEN WIR ? du kannst bitte selbst googlen ...

ZWEITENS : WIE KÖNNTEN WIR ? es hängt vom router selbst ab wie es genau geht ... es ist zwar bei vielen sehr ähnlich ... aber wenn ich dir jetzt sage wie es bei mir geht ... und dein menü anders ist kommt von dir mit 100%iger sicherheit sowas wie : "gibt es bei mir nicht" ...
 

JJK3

Aktives Mitglied
OMG sag es mir doch einfach und das Problem wär beendet!

[EDIT]Hab übrigens mal was ganz simples ausprobiert:

CLIENT:
Code:
import javax.swing.*;
import java.net.*;
import java.io.*;

public class Client {
    Socket clientSocket;
    JFrame f = new JFrame();
    JLabel l = new JLabel("3fdsvgsdvasdvsd ");
    public static void main(String[] args) {
        Client c = new Client();
        c.los();
    }
    
    public void los() {
        try {
            clientSocket = new Socket("127.0.0.1", 8189);
            f.setVisible(true);
            f.setSize(743,342);
            f.add(l);
            InputStreamReader inStream = new InputStreamReader(clientSocket.getInputStream());
            BufferedReader inStream_reader = new BufferedReader(inStream);
            l.setText(inStream_reader.readLine());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

UND:

SERVER
Code:
import javax.swing.*;
import java.net.*;
import java.io.*;

public class Server {
    ServerSocket serverSocket;
    public static void main(String[] args) {
        Server v = new Server();
        v.los();
    }
    
    public void los() {
        try {
            serverSocket = new ServerSocket(8189);
            
            while (0==0) {
                Socket clientVerbindung = serverSocket.accept();
                
                PrintWriter pW = new PrintWriter(clientVerbindung.getOutputStream());
                pW.print("hhhfdshf");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Hab jeweils ne .jar drauß gemacht und gestartet!!
(Server zuerst)

Das JFrame der Client Klasse öffnet sich, aber das Label mit dem Schwachsinns text erscheint nicht!!
Geschweige den der neue, vom Server empfangene, Text!![/EDIT]
 
Zuletzt bearbeitet:

TKausL

Top Contributor
KÖNNEN WIR NICHT!
Gib bei google "Router XYZ portweiterleitung" ein und du wirst zu 100% was finden.

BTW: Was soll das da werden wenns fertig ist?
Java:
while (0==0) {


Edit:

Dein server sendet:
Java:
pW.print("hhhfdshf");

Dein CLient empfängt:
Java:
inStream_reader.readLine()

Fällt dir denn garnicht auf, dass der Server garkeine "Line" sendet, die du mit readLine auslesen könntest?
(Eine "Line" endet mit einem Zeilenumbruch!!!)
 
T

trääät

Gast
wie ich bei zweitens sagte : wie KÖNNEN es nicht ... denn wir wissen nicht welchen router du hast ... das weist nun mal nur du ... ergo musst auch du selbst bei google : "port forwarding ROUTER-MODEL" eingeben ...

zum code :
von abgesehen das du wie TKausL schon sagte vom server keine line sendest aber im client eine einlesen willst addest du das label erst nach dem anzeigen ... das das so nicht geht lernt man in grundlagen gui ...
entweder du addest das label vorher ... und du rufst nach dem adden sowas we revalidate() auf damit das label dann auch angezeigt wird ...
sonst so an sich ist der code ... naja ... ungewöhnlich ... wobei ich while(0==0) so auch noch nie gesehen habe ...
 

Ark

Top Contributor
Fällt dir denn garnicht auf, dass der Server garkeine "Line" sendet, die du mit readLine auslesen könntest?
Wie sollte es? Hier ist ja jemand anscheinend extrem lernresistent und glaubt, Programmieren (bzw. die Verwendung von Computern auf dieser Ebene) ginge halt ohne ein tiefergehendes Verständnis für die Materie.

Ark
 
T

trääät

Gast
ich kenn da noch so n kandidaten mit ähnlichem wissensstand und ähnlichen fragen ... nur bringt dieser hier es deutlich besser zum ausdruck als der andere ...

aber ansonsten : ein wahres wort wurde gesprochen
 

JJK3

Aktives Mitglied
Ok das mit dem Router guck ich mir mal an bevor mir hier noch jemand ne Morddrohung schickt :shock:

TKlausL
Code:
while (0==0) {
Soll heißen
Code:
while (true) {
kommt auf gleiche!!

Und danke für den Tipp das print und println ein Unterschied sein könnte der alles kauputt macht, aber wenn ich println schreibe ändert das nichts!!
 
T

Trolllllll

Gast
Kam da von deiner Firewall ein Pop-up?
Dann musst du es da erlauben oder die Firewall zum testen mal auschalten
 

JJK3

Aktives Mitglied
Hört sich jetzt vieleicht ganz peinlich an, aber meine Firewall ist aus und ich versuche schon seit Tagen sie wieder an zu kriegen...
Ohne Erfolg, deswegen:

Nein, kein Pop-up!!
 

Ark

Top Contributor
Tja, ich würde mal sagen, hier hat einfach keiner Lust, dir die Grundlagen zum Arbeiten in Netzen zu verklickern. (Dass sie dir fehlen, zeigst du ja in ungefähr jedem deiner Beiträge hier.) Nur mit diesen Grundlagen (insbesondere IPv4 und NAT) ist es überhaupt möglich, die Ursachen der hier beschriebenen Probleme zu lokalisieren.

Deswegen solltest du dich dringend in die Grundlagen einlesen, sonst wird das hier gar nichts. Linux (vielleicht auch iDinger, weiß ich gerade nicht) eignet sich hervorragend, um mit Programmen wie
Code:
ifconfig
,
Code:
netstat
,
Code:
ping
,
Code:
host
,
Code:
tcpdump
/
Code:
wireshark
,
Code:
netcat
,
Code:
nmap
/
Code:
zenmap
diese Grundlagen auch praktisch zu erlernen und sein Wissen zu erproben.

Wenn du das hingekriegt hast, kannst du a) dein Problem selbst lösen oder b) Fragen so stellen, dass wir dir hier auch helfen können.

Ark
 
T

trääät

Gast
@TO
das while(0==0) eine endlosschleife werden soll dürfte UNS mit sicherheit allen klar sein ... denn 0==0 entspricht true ... und ein loop der im kopf nur true stehen hat ist eben eine endlosschleife ... auch wenn deine umsetzung sehr ungewöhnlich ist so zeigt es das du nicht mal elementare grundlagen drauf hast ...

um es dir mal GANZ ausführlich zu beschreiben bedeutet while() folgendes

wiederhole folgenden block so lange "bool" wahr ist

in deiner fassung wird nun "bool" gegen "ist es wahr das 0==0 wahr ist" ausgetauscht was im CPU selbst einen enormen overhead erzeugt ...

schreibt man dagegen gleich true so wird lediglich "bool" gegen "true" getauscht ... das spart dann ganze 2 ops sowie ne menge JMP zeilen ...


weiter im text

das print > println keinen wirklichen unterschied macht ist mir bei deinem code auch kein wirkliches rätzel ... da ja wie ich bereits angedeutet habe nach dem aufbau nicht mal das label angezeigt werden dürfte ... wenn doch > zufall ...
mal von abgesehen das du einfach den socket und dessen streams irgendwo in der luft hängen lässt anstatt sie anständig wieder zu schließen fehlt es hier wohl nicht nur an grundlagen in punkto netzwerktechnik sondern generell wissen wie man überhaupt richtig mit streams und anderen closeables umgeht ...
wenn man sowas im produktiven umfeld nutzen würde hätte man bei ner starken auslastung einen server-crash binnen sekunden bis wenige minuten ...


zum "ports freigeben"

in der regel sollte eine gute firewall erstmal alles blockieren was der user nicht eingestellt hat ...
leider haben viele heutige firewalls bereits ne lange liste an programmen die trotzdem so druch dürfen ... ist immer lästig der firewall hinterher zu räumen ...
also ja : grundsätzlich muss in der firewall schon gestattet werden das java erstmal über haupt ne verbindung aufbauen darf ... und dann zusätzlich noch das es auch serversockets öffnen darf ...
aber da java über digital signaturen verfügt und von den meisten firewalls alleine am namen erkannt und nur noch mit nem hash geprüft wird sollte das bei den meisten schon so in der freigabe-tabelle drinstehen ...

oder meinst du mit port-freigabe etwa doch port-forwarding ?

wenn du deine firewall abgeschaltet hast und nun aber nicht mehr ans laufen bekommst gibt es dafür ein paar gründe

1) die firewall verweigert den dienst auf grund einer anderen bereits aktiven firewall
2) es fehlen updates wesshalb der gesamte controller nicht will
3) der paket-filter wurde beschädigt bzw manipuliert
4) in der zeit wo du die firewall in-aktiv hattest hat sich ein schädling ins system eingenistet und blockiert nun die firewall komplett ...


zum schluss : wir reißen dir eigentlich eher den ***** auf anstatt den kopf ab ... aber wie wir alle bereits mehrfach sagten : wir können dir nicht verraten wie man in deinem speziellen fall irgendwo irgendwelche ports freigibt oder port-forwarding einrichtet ... denn das kannst du erstens bitte selber googlen ... und zweitens : wenn du es selbst nicht findest uns ja mal sagen was du so an soft- und hardware verwendest ... wobei ich auch bezweifle das du das halbwegs so genau hinbekommst das man dir sinnvoll helfen könnte


@Ark
ich würde TO jetzt nicht unbedingt in die unix-welt freilassen ... alle gennanten grundlagen kann man auch durchaus mit windows erlangen ... und zur not gibt es fast alles dank cygwin portiert ...
 

Ark

Top Contributor
ich würde TO jetzt nicht unbedingt in die unix-welt freilassen ... alle gennanten grundlagen kann man auch durchaus mit windows erlangen ... und zur not gibt es fast alles dank cygwin portiert ...
Cygwin? Ist das nicht dieses Mordsding von Patch, das eine schlechte Spielekonsole in eine halbwegs brauchbare Arbeitsumgebung verwandelt? :joke:

(Mal davon abgesehen, hat man mit Cygwin auch wieder nur ein halbes *nix, und da ist es wohl sinnvoller, vor allem zu Lehr- und Lernzwecken gleich ein richtiges *nix-System aufzusetzen.)

Ich gebe zu, dass ich lange nicht mehr wirklich viel mit Windows zu tun hatte; mein Eindruck war aber, dass mit jeder neuen Windows-Version die Netzwerkverwaltung immer komplizierter wurde, weil man bei M$ wohl meinte, immer mehr Details verstecken zu müssen. Dazu gleich zwei Zitate:
https://wiki.archlinux.org/index.php/The_Arch_Way hat gesagt.:
Arch Linux developers and users believe that trying to hide the complexities of a system actually results in an even more complex system, and is therefore to be avoided.
Und:
http://www.heise.de/security/news/foren/S-Re-Idiotentest/forum-243740/msg-22788811/read/ hat gesagt.:
Immer mehr Leute nutzen Techik die sie immer weniger verstehen.
Ausserdem wird den Leuten ja immer mehr Zeug vorgekaut und bei vielen
Dingen weniger eigene Denkleistung gefordert. Der Schilderwald im
Straßenverkehr ist auch ein gutes Beispiel. Einfach nur noch nach den
ganzen Schildern richten, Situationen beurteilen ist überflüssig.
Unter diesen Gesichtspunkten erscheint mir Windows mehr und mehr als eine Umgebung, die schlecht für solche Zwecke geeignet ist.

Vielleicht liege ich aber auch komplett falsch und Windows ist wirklich nicht so katastrophal. Das mit Linux war auch mehr nur ein Vorschlag. Wenn Windows also tatsächlich geeignet erscheint und hilft, kann der TO natürlich gern darauf zurückgreifen. :bahnhof:

Ark
 

JJK3

Aktives Mitglied
Mein Code funktioniert jetzt warum nicht?
Weil ich die Streams nicht schließe? (Sorry, hab ich halt vergessen-passiert mir irgendwie immer...)
 
T

tröööt

Gast
@Ark
hmm .. dann solltest du dir mal ein ordentlich XP Pro oder Win 7 ansehen ...
alle nötigen commandline-tools die du aufgezählt hast gibt es auch unter windows ... wenn auch mit teilweise anderem namen
und WireShark ist ja grundsätzlich ein tool eines jeden netzwerk-entwicklers ...

@TO
das kann ich dir jetzt so nicht bewantworten da ich um diese zeit eigentlich nicht wirklich mehr die lust habe jetzt deinen code zu kopieren , ihn zu korrigieren , dann festzustellen das meine variante funktioniert ... dir das mitzuteilen und dir dann zu versuchen zu erklären wie man richtig debuggt ...
 

JJK3

Aktives Mitglied
Ist ja unglaublich,
hab die reader und Writer geschlossen nun gehts!!
Ist so wichtig und trotzdem vergesse ich es immer!!
Sollte mir es vieleicht an den Monitor kritzeln! :lol:
Naja Danke jedenfalls, ich glaub darauf kann ich jetzt aufbauen!!

Das ihr andauernd sagt ich hätte keine Ahnung von Netzwerk-programmierung stimmt,
ich wollte damit anfangen aber der Code den ich gepostet habe hat ja nicht funktioniert, deswegen wusst ich nicht wie ich weitermachen sollte!!! :oops:
 

MR_UNIX

Bekanntes Mitglied
Es wäre nett, wenn du den jetzigen Code noch einmal posten könntest. Mir ist vorhin etwas aufgefallen und würde gerne sehen, ob und wie du das jetzt gelöst hast.
 

JJK3

Aktives Mitglied
CLIENT

Code:
import javax.swing.*;
import java.net.*;
import java.io.*;
import java.awt.event.*;
import java.awt.*;

public class Client {
    Socket clientSocket;
    BufferedReader inStream_reader;
    PrintWriter clientOut;
    JFrame f = new JFrame();
    JTextField eingabe = new JTextField(10);
    JTextArea textarea = new JTextArea(20,30);
    JScrollPane pane = new JScrollPane(textarea);
    JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();
    public static void main(String[] args) {
        Client c = new Client();
        c.los();
    }
    
    public void los() {
        try {
            f.setVisible(true);
            f.setSize(500,500);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.add(BorderLayout.NORTH,panel1);
            f.add(BorderLayout.SOUTH,panel2);
            panel1.add(textarea);
            textarea.setEditable(false);
            panel2.add(eingabe);
            eingabe.addActionListener(new EingabeListener());
            
                    clientSocket = new Socket("127.0.0.1", 8189);
                    InputStreamReader inStream = new InputStreamReader(clientSocket.getInputStream());
                    inStream_reader = new BufferedReader(inStream);
                 clientOut = new PrintWriter(clientSocket.getOutputStream());
          //  Thread Abfrage = new Thread(new AbfrageThread());
           // Abfrage.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    class EingabeListener implements ActionListener {
        public void actionPerformed (ActionEvent e) {
            try {
                clientOut.println(eingabe.getText());
                clientOut.flush();
                eingabe.setText("");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    
    class AbfrageThread implements Runnable {
        public void run() {
            String message;
            try {
                while ((message = inStream_reader.readLine()) != null) {
                    textarea.append(message+"\n");
                    Thread.sleep(1000);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

SERVER

Code:
import javax.swing.*;
import java.net.*;
import java.io.*;

public class Server {
    JFrame serverFrame = new JFrame("Server-controll");
    ServerSocket serverSocket;
    JTextArea l = new JTextArea("");
    public static void main(String[] args) {
        Server v = new Server();
        v.los();
    }
    
    public void los() {
            serverFrame.setVisible(true);
            serverFrame.setSize(743,342);
            serverFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            serverFrame.add(l);
        try {
            serverSocket = new ServerSocket(8189);
            
            while (true) {
                Socket clientVerbindung = serverSocket.accept();
                
                InputStreamReader serverInput = new InputStreamReader(clientVerbindung.getInputStream());
                BufferedReader serverInput_reader = new BufferedReader(serverInput);
                String message = serverInput_reader.readLine();
                l.append(message);
                PrintWriter pW = new PrintWriter(clientVerbindung.getOutputStream());
                pW.println(message);
                pW.flush();
                pW.close();
                serverInput_reader.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Übrigens es funktioniert noch nicht!!
Wenn jemand ne Idee hat...
Der Server bekommt die Daten, aber sendet sie nicht korrekt zurück!!


DANKE
 

MR_UNIX

Bekanntes Mitglied
Was fehlt denn bei der Rücksendung? Mir fällt spontan auf, dass er nur die bekommenen Zeichen sendet aber die neuen Sachen aus der TextArea ignoriert d.h. wenn man was da eingibt wird es nicht gesendet.
 

JJK3

Aktives Mitglied
Alles fehlt bei der Rücksendung!!
Also nur damit ich weiter experimentieren kann hätte ich gerne das man dem Client Textfield etwas eingeben kann, das wird dann an den server gesendet und der sendet das gleiche dann zurück zum Client, welcher es dann in das eigene Textfield schreibt!!

Das JFrame des Server hab ich nur gemacht um zu testen ob beim server was ankommt!!

Danke
 

TKausL

Top Contributor
Java:
          //  Thread Abfrage = new Thread(new AbfrageThread());
           // Abfrage.start();

Kein wunder...

Das JFrame des Server hab ich nur gemacht um zu testen ob beim server was ankommt!!

"Normale" Programmierer machen dafür ein Sysout, kein JFrame :lol:
 
T

trääät

Gast
gott ... bei dem code dreht sich mir aber immer noch gewaltig der magen um ...

da du ja scheinbar wirklich unfähig bist zu googlen ... oder geschweige denn einfach mal ins netzwerkforum zu gehen hier mal ein ganz einfacher chat mit JApplet als client

in diesem code ist WIRKLICH ALLES was du brauchst ... gut ... mit ausnahme der "datei-übertragung" selbst ...

Server
Java:
import java.io.*;
import java.net.*;
import java.util.*;
public class Server
{
	private ServerSocket serverSocket=null;
	private Vector<ClientRunnable> clients=null;
	private static Server server=null;
	public static void main(String[] args)
	{
		System.out.println("start-up chat-server");
		server=new Server();
		server.startup();
		System.out.println("start-up complete");
	}
	private Server()
	{
		System.out.print("try to create ServerSocket ... ");
		try
		{
			serverSocket=new ServerSocket(12345);
		}
		catch(Exception e)
		{
			System.out.println("failed to create ServerSocket");
			e.printStackTrace();
			System.exit(1);
		}
		System.out.println("ok");
		clients=new Vector<ClientRunnable>();
	}
	private void startup()
	{
		System.out.print("setting up accept-thread ... ");
		Thread thread=new Thread(new Runnable()
		{
			public void run()
			{
				while(true)
				{
					try
					{
						Socket client=serverSocket.accept();
						ClientRunnable clientRunnable=new ClientRunnable(server, client);
						(new Thread(clientRunnable)).start();
						clients.add(clientRunnable);
					}
					catch(Exception e)
					{
						System.out.println("failed to accept client");
						e.printStackTrace();
					}
				}
			}
		});
		System.out.println("ok");
		System.out.println("starting accept-thread");
		thread.start();
	}
	protected void broadcast(String msg)
	{
		for(ClientRunnable client : clients)
		{
			client.send(msg);
		}
	}
	protected void disconnect(ClientRunnable client)
	{
		clients.remove(client);
	}
}

Client
Java:
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ClientApplet extends JApplet
{
	private Socket socket=null;
	private BufferedReader in=null;
	private PrintStream out=null;
	private JTextField jTextField=null;
	private JTextArea jTextArea=null;
	public ClientApplet()
	{
		setLayout(new BorderLayout());
		setBackground(Color.LIGHT_GRAY);
		setForeground(Color.BLACK);
	}
	public void init()
	{
		jTextField=new JTextField();
		jTextField.setBackground(Color.WHITE);
		jTextField.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				try
				{
					String msg=jTextField.getText();
					if(!msg.equalsIgnoreCase("DC"))
					{
						out.println(msg);
					}
					jTextField.setText("");
				}
				catch(Exception ex)
				{
					jTextArea.append(ex.toString()+"\n");
				}
			}
		});
		jTextArea=new JTextArea();
		jTextArea.setBackground(Color.WHITE);
		jTextArea.setEditable(false);
		this.add("South", jTextField);
		this.add("Center", jTextArea);
	}
	public void start()
	{
		try
		{
			socket=new Socket(this.getCodeBase().getHost(), 12345);
			in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
			out=new PrintStream(socket.getOutputStream());
		}
		catch(Exception e)
		{
			jTextArea.append(e.toString()+"\n");
			jTextArea.append("cant connect to server");
			return;
		}
		jTextArea.append("connected\n");
		(new Thread(new Runnable()
		{
			public void run()
			{
				String line="";
				while(true)
				{
					try
					{
						line=in.readLine();
						if(line==null)
						{
							break;
						}
						if(line.equals(""))
						{
							continue;
						}
						jTextArea.append(line+"\n");
					}
					catch(Exception e)
					{
						jTextArea.append(e.toString()+"\n");
					}
				}
				jTextArea.append("ERROR");
				try
				{
					in.close();
					out.close();
					socket.close();
				}
				catch(Exception e)
				{
					jTextArea.append(e.toString()+"\n");
				}
				return;
			}
		})).start();
	}
	public void stop()
	{
	}
	public void destroy()
	{
		try
		{
			out.println("DC");
			in.close();
			out.close();
			socket.close();
		}
		catch(Exception e)
		{
			jTextArea.append(e.toString()+"\n");
		}
	}
}

und wenn du JETZT wirklich immer noch fragen zum net-code hast dreh ich dir den hals um ...

ich will von dir jetzt allerhöchstens noch KONKRETE fragen bezüglich der daten-verarbeitung hören ... auf alles andere hast du jetzt in form eines funktionierenden chats ALLE antworten die wir die bezüglich geben können OHNE dir gleich kompletten source zu posten womit lerneffekt = 0 wäre ...

und wie man n file öffnet ... und dies nun über die offene verbindung überträgt ... das solltest du schon mal selbst packen ... genau so wie man aus dem broadcast-server lediglich einen empfangs-server für die daten des clients machen ... bzw auf abfragen reagiert und entsprechend daten sendet ...

ich hab jetzt wirklich die schnauze voll um es mal so direkt zu sagen ...
so unglaublich lernresistent und faul habe ich hier lange niemanden mehr gesehen ...
 

JJK3

Aktives Mitglied
und wenn du JETZT wirklich immer noch fragen zum net-code hast dreh ich dir den hals um ...
[/QOUTE]
Ich sag doch die erste Morddrohung lässt nicht mehr lange auf sich warten! :lol:
Außerdem träätte:
Dein fertiger code ist net und so, aber fertigen code härte ich auch noch selat im I-net gefunden!
Aber dann blick ichs nicht so gut!! wenn ichs selbst mache versteh ichs am ende wenigstens!!

"Normale" Programmierer machen dafür ein Sysout, kein JFrame :lol:

Wollte es auch in der fertigen .jar file testen können!!
 

TKausL

Top Contributor
Wollte es auch in der fertigen .jar file testen können!!
Damit meinst du genau "WAS"?
Schonmal ne .jar auf nem Linux-Server oder in der Windows-Console ausgeführt? Nahezu "JEDER" Server (ob Java, C++, w/e) nutzt NUR die Console um Informationen/Fehler/Bla zu zeigen und eingaben zu empfangen... Wäre traurig wenn eine fertige .jar keine Ausgaben mehr tätigen könnte außer über eine eigene GUI...
 

JJK3

Aktives Mitglied
Ich möchte das gar nicht auf nem server laufen haben!!
Am ende sollte mein PC der Server sein!!
Hab das mit dem JFrame deswegen gemacht!!
Ist's schlimm?
 

TKausL

Top Contributor
Ich möchte das gar nicht auf nem server laufen haben!!
Am ende sollte mein PC der Server sein!!
Hab das mit dem JFrame deswegen gemacht!!
Ist's schlimm?

Es wird schlimm werden wenn du merkst dass deine Leitung für X User dann doch nichtmehr reicht und du das Programm auf nem Linux-Server laufen lassen willst. GUI's sind meiner Meinung nach für Serveranwendungen sinnfrei.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
H Mehrere PNG-Files in einer Datei Allgemeine Java-Themen 9
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
X Files.walkFileTree zählt nicht richtig Allgemeine Java-Themen 2
L Mehrere .Jar Files aufrufen Allgemeine Java-Themen 9
P Am Application Server - Selbe files aber trotzdem CNF Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
M *.class Files ausführen Allgemeine Java-Themen 2
F Java moved Files statt sie zu kopieren Allgemeine Java-Themen 12
B Existenz eines Files max 30 sec prüfen Allgemeine Java-Themen 5
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
J Java Software Compare Files und Neue File erstellen Allgemeine Java-Themen 0
X Wav-Files abspielen Allgemeine Java-Themen 2
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
W audio files metadaten Allgemeine Java-Themen 2
M Threads Excel files bearbeiten Allgemeine Java-Themen 4
V Files mit Umlauten ergeben keine Größe Allgemeine Java-Themen 9
K Zip-Archive mit temporären Files erstellen Allgemeine Java-Themen 16
M Verschlüsselung von Text und Files durch RSA (Encoding Problem) Allgemeine Java-Themen 7
M wav-files kanäle zusammenfügen + pitchen Allgemeine Java-Themen 6
R Löschen von Files nicht möglich Allgemeine Java-Themen 11
B Files.isDirectory Allgemeine Java-Themen 14
P Ordnerstruktur nach .js-Files durchsuchen Allgemeine Java-Themen 2
L Class Files , Methode .delete() Allgemeine Java-Themen 13
P Files - nach der reihe String reinschreiben Allgemeine Java-Themen 2
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
A Navigation zu Files innerhalb jar Allgemeine Java-Themen 3
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
B Eclipse Attache source to own jar-files Allgemeine Java-Themen 2
B Permissions of Folders/Files Allgemeine Java-Themen 6
A External Sort - too many open files Allgemeine Java-Themen 6
E Files Kopieren Allgemeine Java-Themen 8
V Mac: Paketinhalt eins Files öffnen, wie? Allgemeine Java-Themen 3
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
reibi Separator in java.util.Properties-Files Allgemeine Java-Themen 3
M Webservices: WSDL Files ohne "Service" Element? Allgemeine Java-Themen 4
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
X Log files monitoren Allgemeine Java-Themen 7
reibi Files über Classpath laden Allgemeine Java-Themen 22
S Viele zip-files zu einem kombinieren..? Allgemeine Java-Themen 3
B Öffnen und schließen von Pdf-Files Allgemeine Java-Themen 8
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
R in .jar werden files nicht gefunden!!! Allgemeine Java-Themen 5
N Fehler mit Jar-Files Allgemeine Java-Themen 9
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
U Properties in Jar Files Allgemeine Java-Themen 3
Developer_X Extract Zip Files with Java Allgemeine Java-Themen 21
N 2 files auf gleichheit vergleichen Allgemeine Java-Themen 5
A Get all Files in Workspace Allgemeine Java-Themen 9
Quaxli Files massenhaft löschen Allgemeine Java-Themen 3
N Versionierung von jar-Files Allgemeine Java-Themen 5
Daniel_L Best Practice zum Löschen von Log-Files? Allgemeine Java-Themen 8
V aus mehreren jar files, ein großes basteln Allgemeine Java-Themen 22
J Too many open files Allgemeine Java-Themen 11
J Eclipse: Einbindung von jar-Files funktioniert nicht Allgemeine Java-Themen 4
O .jar Files - Tools zum generieren Allgemeine Java-Themen 25
A Problem: Mehrere PDF-Files nacheinander Öffnen Allgemeine Java-Themen 12
A jpeg Files mit eigenem Programm öffnen Allgemeine Java-Themen 4
M Embedded Files aus PDF extrahieren Allgemeine Java-Themen 3
J Too many files open Allgemeine Java-Themen 4
M Debuggen von Code in jar-Files? Allgemeine Java-Themen 5
G Sonderzeichen für Files Allgemeine Java-Themen 5
G bestimmte Files suchen Allgemeine Java-Themen 2
reibi Classenpath mit mehreren gleichen jar-Files Allgemeine Java-Themen 7
M Die gleiche Klasse in mehreren JAR files Allgemeine Java-Themen 5
M Probleme mit jar-files Allgemeine Java-Themen 5
G Bearbeiten von Files in einem Thread Allgemeine Java-Themen 4
reibi Klassenpfad für jar-Files Allgemeine Java-Themen 7
J Alte Log Files löschen mit log4j Allgemeine Java-Themen 3
D Files umbenennen mit renameTo() Allgemeine Java-Themen 5
I Pfadangabe zu Files Allgemeine Java-Themen 2
X PowerPoint Files in Java erzeugen Allgemeine Java-Themen 2
sparrow Ant build-files rekursiv aus ant aufrufen Allgemeine Java-Themen 3
K "Too many open files" bei Property List Allgemeine Java-Themen 5
T Mp3 files? Allgemeine Java-Themen 2
I Files einlesen Allgemeine Java-Themen 3
I Diverse Files aus Ordner auslesen Allgemeine Java-Themen 10
mabu Erstellen/Entpacken von Cabinet-Files Allgemeine Java-Themen 12
T Jar-Files und JVM-Cache? Allgemeine Java-Themen 2
P eingebundene *.jar- Files Allgemeine Java-Themen 28
G policy files laden? Allgemeine Java-Themen 8
T Files an das Betriebsystem übergeben such ideen! Allgemeine Java-Themen 3
M auf files des packages zugreifen Allgemeine Java-Themen 2
A Versionierung von Class-Files Allgemeine Java-Themen 10
vogella Korrektur der Filetypenzuordnung für .jar Files unter Window Allgemeine Java-Themen 2
S Files umbennen Allgemeine Java-Themen 4
M laden von Klassen aus jar files Allgemeine Java-Themen 2
R Drag und Drop von externen Files geht nur als Application Allgemeine Java-Themen 2
V Jar Files Auf meinem Handy Allgemeine Java-Themen 7
D Files einlesen (XML Files) Allgemeine Java-Themen 2
N Problem mit jar und ant: kann files nicht lesen! Allgemeine Java-Themen 15
P Fortschrittszustand von gezippten Files anzeigen Allgemeine Java-Themen 6
S JAR-Files Allgemeine Java-Themen 6
F Alle Files im Ordner nach Dateinamen durchsuchen Allgemeine Java-Themen 28
P Fehlermeldung beim Speichern eines java files Allgemeine Java-Themen 5
P jar files einbinden (Eclipse) Allgemeine Java-Themen 2
G Probleme mit Class Files Allgemeine Java-Themen 16
G rar files dekomprimieren Allgemeine Java-Themen 4
V INI Files, Properties etc. Allgemeine Java-Themen 7

Ähnliche Java Themen


Oben