Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Java: Verbindung zu einem Computer im Netzwerk aufbauen

Aloa Leutz!

Ich weiß, dass das Thema vll schon in dem Topic mit dem Chat aufgekommen is, aber ich würde gerne wissen, wie man eine Verbindung zu einem Computer im Netzwerk aufbauen kann! Die kommunizierenden Computer sind beide an einem Router angeschlossen, der sozusagen der Gateway beider Rechner ist. Kann mir einer helfen, wie ich mit Java auf einem anderen Rechner arbeiten kann? Damit beziehe ich mich vll erst mal auf eine Nachricht an den jenigen senden ... Danach kann ich ja selber weiter schauen ... Mein Ziel ist es, mit einem Prog auf meinem Rechner das gleiche Prog auf einem anderen Rechner anzusprechen, sodass das etwas macht... (Ne art Methode aufrufen... nur auf einem anderen Rechner ^^) Sollte ich da vll doch anders herangehen?

THX, wer das schon mal verstanden hat mit meiner Erklärung XD


Antworten zu Java: Verbindung zu einem Computer im Netzwerk aufbauen:

Hi!

Also ich blicke nicht ganz durch was du willst.

Es ist ohne Probleme möglich Daten zwischen den beiden Rechner auszutauschen.

geht mit OutputStreams

Ich schreibe seit mitlerweile auch schon einiger Zeit an MyCC,
es ist ein Chat ein kleiner Filesharer und ein Tellnetserver / Client in einem, schaus dir mal an vielleicht kannst du ja ein paar Code Schnipsel brauchen.

myc.berniwa.com

MFG BWA

Also, ich würde mal sagen, dass du das Prog geschrieben hast, was ich schreiben WOLLTE ^^ Nein, ich nehm jetzt nicht einfach deins, sondern würde das gerne selber machen.
Kannst du mir mal sagen, wie ich an den Source rankomme? Und dann vll noch gleich hier posten, wie man einer Verbindung im Netzwerk aufbauen kann, damit ich auf ein Programm auf dem anderen Rechner zugreifen kann?

THX, für die Mühen! ^^

Grundsätzlich brauchst du zum aufbauen der Verbindung einen Rechner der Server spielt.

Auf dem musst du erst einen ServerSocket öffenen.

import java.io.*;
import java.net.*;

//...

ServerSocket echod = new ServerSocket(Port); //ServerSocket öffnen
Socket socket = echod.accept(); //Warten bis ein Client "anbeißt"
BufferedInputStream bIn = new BufferedInputStream(socket.getInputStream); //Einen gepufferten Inputstream bauen
BufferedOutputStream bOut = new BufferedOutputStream(socket.getOutputStream); //Einen gepufferten Outputstream bauen

bOut.write("hello world".getBytes()); //Rausschreiben
bOut.flush(); //Den gesamten Puffer leeren und senden

socket.close(); //Verbindung schliessen

Nun brauchst du noch einen Client

import java.io.*;
import java.net.*;

//...


Socket sock = new Socket(IP, Port);
BufferedInputStream bIn = new BufferedInputStream(sock.getInputStream); //wieder einen netten InputStream
BufferedOutputStream bOut = new BufferedOutputStream(sock.getOutputStream); //Das gleiche fürs rausgehende

for(int i=0; (i = bIn.read()) != -1; ) //Schleife läuft so lange bis die Verbindung geschlossen wird
{
System.out.print((char)i); //Ausgeben
}

sock.close(); //Verbindung beenden

Es kann seine dass Fehler drinnen sind, da ich den Code jetzt direkt reingetippt und ned getestet hab.

MFG BwA

PS: Ich schau dir noch nach ein paar Websites

Hier findest du noch a bissal was dazu

http://www.galileocomputing.de/openbook/javainsel4/javainsel_16_006.htm


http://dufo.tugraz.at/mirror/hjp3/k100283.html#kapitelnetzwerkprogrammierung


Ich wäre außerdem noch schauen, dass ich dir den Code zusammenpack und dir per mail schick.
(Posten wäre bei ein paar 1000 Zeilen ned ratsam ;) )

Aber schreck dich ned, ich hab ihn ned kommentiert und er ist teilweise ziemlich "massiv" aber du wirst schon sehen.

MFG BWA

« Letzte Änderung: 10.12.05, 23:51:15 von BWA »

@first: nimm mal die mail, die ich hier beim letzten Post geschrieben hab!

@second: THX für die super ausführliche Hilfe!

@rest: Ich hab ja auch das Javabuch und hab mir da den bereich auch schon angelesen, aber ich hab da das Prob, dass ich nicht weiß,
was ich mit dem Port soll (muss der einfach nur beim Server und Clienten gleich sein oder is das ein festgelegter?...)
dann, die Frage zum Server: in deinem Prog hab ichs net erkannt... is da der Server, der den Chat eröffnet oder ist der Server extern??
und letztendlich: mit dem out- und in-writer kann ich zeichenketten oder so senden, aber was ist, wenn ich eine Methode in dem Programm, was genau wie bei dir ausgeführt werden muss (ich habs getestet), aufrufen will?

Wäre genial, wenn du mir das (noch) beantworten könntest...
[Ich habs ja probiert nicht so doof zu fragen, aber nach 4 Wochen gucken und suchen und testen und ärgern hab ich mich entschlossen doch mal ein Topic deswegen aufzumachen ... ^^' ]

THX Stiewen

ich habs dir schon an die andere mail geschickt vom 2. Posting soll ichs noch mal schicken oder passts??

zu den Ports:
Also Grundsätzlich kannst du jeden Port kleiner ~65000 verwenden er muss bei Client und Server gleich sein, du musst nur aufpassen das s du nicht z.B. auf Port 80 (für Webserver),Port 21, ... kommst, ihc würde dir raten nur Ports größer 1024 zu verwenden (ich nehm meist 8000 oder 16000)

Grundsätzlich der Server den ich geschrieben habe ist ein Server der nur die Verbindung zu einem Client ermöglicht, er öffnet zuers einen Port und "lauscht" daran bis ein Client eine Verbindung aufbaue will dann sendet er die Nachricht "hello world" und beendet die Verbindung

Hier findest du einen Server der mehrere Clients annehmen kann.
http://dufo.tugraz.at/mirror/hjp3/k100286.html#mehrereclients

MFG BwA

Super, also, danke noch einmal an dich und ich muss gestehen, dass ich ein bissel voreilig meinen letzten Post geschrieben habe, weil ich heute morgen dann darauf gekommen bin... ^^

Ja, nochmal ein gigantisches Danke und ich meld mich bestimmt noch mal wieder :-D

PS.: Ich bin seit 1h dabei Strings zu übermitteln... (Chat schreiben) ^^

THX Stiewen

Soooo, alsoooo ich bin sehr gut klar gekommen und ich hab eine Art Chat hinbekommen! Supi find ich das ^^

Nun aber noch 2 Fragen: Wie kann ich bitte die IP für das Internet eines Rechners herausbekommen? Idee: die Seite www.wieistmeineIP.de öffnen... aber wie? Runtime kenn ich schon, aber was kommt als exec-Befehl rein?

Und 2: Wie kann man es machen, dass man mit einem schreiben kann, der aber sein I-Net aus einem Netzwerk bezieht? Beispiel: Rechner A geht über einen Router ins Netz... Wie kann ich trotzdem mit ihm schreiben?

THX Guys!

Also das erste Problem habe ich so gelößt (findest den Code bei MyCC unter "?"):

      try {
         Process bu = Runtime.getRuntime().exec(
             "explorer http://www.wieistmeineip.de");
         bu.getErrorStream();
       }
       catch (IOException ex) {
         new ErrorHandler(ex,
             "Konnte Internet Explorer (http:\\www.wieistmeineip.de) nicht öffnen. ",
                          Debug);
       }

zur 2. Frage
Grundsätzlich kannst du chatten sobald der Server (der Rechner der den Server socket offen hat) verfügbar ist. Ist dieser hinter einem Router musst du am Router einstellen, dass er den gewünschten Port automatisch an diesen Rechner weiterleitet.
Anders ist es in diesem Rahmen leider nicht zu lösen.

MFG BWA

also ich würd das MyCC auch gerne downloaden, nur der Download funktioniert nicht ;)--->Bitte wieder reinsetzen!

Oh sorry,
bin vor kurzem auf einen anderen Server umgestiegen, und ich hab vergessen die Versionen wieder aufzuspielen.

MFG
BWA

PS: Dafür kriegst du auch die neue v2.2


« Betriebsystem Turbo PascalPulldown-Menü bitte helfen! »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Snapchat
SnapChat ist eine kostenlose Messaging-App, mit der - ähnlich wie bei WhatsApp oder dem Facebook Messenger - Nachrichten an andere Personen oder Gruppen gesendet wer...

Computer
Siehe PC....

Supercomputer
Bezeichnung für sehr schnelle Computersysteme, die ein vielfaches an Leistung normaler Desktop-Computer besitzen. Die Top 500 Liste der schnellsten Supercomputer wel...