Allgemeine Frage zu Sockets

Status
Nicht offen für weitere Antworten.
S

silver

Gast
Hallo,

derzeit habe ich mir vorgenommen in die Netzwerkprogrammierung in Java mal rein zuschauen und benutze das Openbook von Galileo Computing. Jetzt wird dort erwähnt, dass man evtl. WinSock installieren muss!
Nun wollte ich das erste Beispiel Programm ausführen und bekomme eine ConnectException.
Muss ich WinSock installieren oder liegt das an was anderes!

Echo.java
Code:
import java.io.*;
import java.net.*;

class Echo
{
  public static void main( String args[] )
  {
    Socket t = null;

    try
    {
      t = new Socket( args.length == 0 ? "localhost" : args[0], 7 );

      PrintStream os = new PrintStream( t.getOutputStream() );

      String test = "Superkalifragilistischexpialigetisch";

      os.println( test );

      BufferedReader in = new BufferedReader(
          new InputStreamReader( t.getInputStream()) );

      String s = in.readLine();

      if ( s.equals(test) )
        System.out.println( "Hurra, er lebt!" ) ;
    }
    catch ( /* UnknownHostException is a */ IOException e ) {
      e.printStackTrace();
    }
    finally
    {
      if ( t != null )
        try { t.close(); } catch ( IOException e ) { }
    }
  }
}

java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at main.Echo.main(Echo.java:13)
 

Wildcard

Top Contributor
Socket benutzt der Client. Auf Server Seite brauchst du immer einen ServerSocket der die Verbindung akzeptiert.
 
S

silver

Gast
okay ich habe es jetzt geschafft einen Echo-Client und -Server zu implementieren, der im Netzwerk funktioniert!
Wie funktioniert das wenn man über das Internet kommunizieren möchte?
 
S

silver

Gast
aha aber nehmen wir mal das Beispiel an, dass ich solch eine Verbindung erstellen möchte:

PC1 -> Router1 -> Internet -> Router2 -> PC2
PC1_IP: 192.168.0.3
PC2_IP: 192.168.0.3

Jetzt soll das am besten so ablaufen PC2 startet den Echo-Server und PC1 den Echo-Client. PC1 gibt die IP-Adresse von PC2 ein und drückt auf den Button "Connect". Nun ich meine woher soll er den wissen, dass PC2 nicht im selben Netz ist bzw. es gibt tausende, die solch einen IP-Addressraum eingestellt haben?
 

AlArenal

Top Contributor
das funzt so nicht.

192.168.x.x ist ein privates netz und deren adressen werden im internet nicht geroutet. ansprechen kannst du lediglich öffentliche adressen. wenn du damit intern irgendwen oder irgendwas erreichen willst, muss der router so konfiguriert sein, dass er die anfrage weiterleitet.. wäre ja noch schöner wenn jeder spast schauen könnte wieviele rechner auf welchen adressen in jedem x-beliebigen netzwerk hängen...
 
G

Gast

Gast
unterschied....nicht wirklich

goggle.ch -----dns---> 182.16.16.2 ....
statische IP....wo der Server intern liegt ?
 
S

silver

Gast
gut, könnte mir vielleicht jemand nochmal schreiben welche Klassen, Methoden, etc. man dafür verwenden muss! Eventuell auch Links wo man das nachlesen kann!
 
G

Gast

Gast
"iptables" in C++ sind oft verwendet von DNS Servern;-)

--> im ernst...das macht dein Router, Server whatever für dich
 

homer65

Top Contributor
Also gut, ich korregiere mich dahin, das es von Java aus gesehen keinen Unterschied macht. Netzwerkseitig natürlich schon.
 

homer65

Top Contributor
Was nun die Netzwerkseite angeht, da wissen wir zu wenig über dein Netzwerk. In der Regel ist es so, das PC2 über einen Provider an das Internet angebunden ist. Von diesem erhält PC2 dann eine nicht private Adresse (z.B. 194.132.11.2) und diese müßte der Client angeben. Dummerweise kennt man diese IP normalerweise nicht und obendrein ändert sie sich auch noch bei jeder Einwahl. Aber zu diesem Themenkomplex hilft das Stichwort dynamisches DNS weiter. Guck doch mal bei http://www.dyndns.org vorbei.
 

AlArenal

Top Contributor
In den meisten Fällen bekommt nicht PC2 die öffentliche Adresse, sondern ein Router. Die allerwenigsten betreiben Breitband direkt am Rechner und ISDN-/Modem-Surfer sind auf dem Rückzug ;)
 

homer65

Top Contributor
Aber es gibt viele Router die dyndns unterstützen und den Traffic vom Router zu PC2 weiterleiten könnten.
 

AlArenal

Top Contributor
Richtig, dennoch ist die Aussage "Von diesem erhält PC2 dann eine nicht private Adresse (z.B. 194.132.11.2)" für die meisten Surfer falsch ;)
 
S

silver

Gast
hm ... okay ich weiß jetzt nicht genau wo das Problem liegt! Ich nehme an PC1 brauch zwei IP-Adressen einmal die von Router2 und von PC2. Meint ihr das ist für den Einstieg in Sockets von mir ein wenig zu hoch gegriffen oder gibt es dafür eine einfache Lösung?
 

Der Müde Joe

Top Contributor
nöd, er bruacht nur eine IP

die von deiner Inet Leitung...via dynDNS spricht du via
Inet dich an...also deinen Router oder ? . Der Router macht
nen Forward auf deinen PC2 ...muss man halt configurieren.
Im router nicht im JAVA
PC1 sucht dann xx.xx.xx.xx und dynDNS löst das auch dein Modem auf und der ROuter macht fdw

so in etwa
 

homer65

Top Contributor
Hallo silver,
also nochmal. Das Ganze ist kein Java Problem. An der Programmierung ändert sich gar nichts. Es handelt sich um ein Netzwerkproblem, Stichwort: dynamisches DNS. Wenn dich das weiter interessiert, solltest du dich mal damit beschäftigen.
 
S

silver

Gast
okay also wenn ich das richtig verstehe muss ich mit DynDNS eine feste Domäne (Router2) erstellen damit ich den Server (PC2) immer mit der gleichen IP erreichen kann! Der Router2 leitet das dann an alle (broadcast) im Subnetz weiter oder woher will der wissen welchen Endpunkt ich meine, weil ich muss doch eine Socket-Verbindung mit dem Router2 erstellen oder?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
Kirby.exe Allgemeine Frage Java Basics - Anfänger-Themen 3
G Schach in Java - Allgemeine Frage zur Architektur Java Basics - Anfänger-Themen 7
TechGirl LinkedList - kurze allgemeine Frage Java Basics - Anfänger-Themen 17
M Allgemeine Java-Frage anhand bspw. Eclipse Java Basics - Anfänger-Themen 4
T Allgemeine Frage Java Basics - Anfänger-Themen 3
J Allgemeine Frage zu GUI´s in Java Java Basics - Anfänger-Themen 6
S OOP Allgemeine Frage zu OOP Java Basics - Anfänger-Themen 4
A Allgemeine Frage zur Sichtbarkeit "private" Java Basics - Anfänger-Themen 5
U Arrays allgemeine Frage Java Basics - Anfänger-Themen 3
G Allgemeine Frage-GUI Java Basics - Anfänger-Themen 10
J Methode, Allgemeine Frage Java Basics - Anfänger-Themen 5
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
S Allgemeine Java Codes lesen und verstehen Java Basics - Anfänger-Themen 7
X Allgemeine Hashtabelle - wie? Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4
B KeyListener als allgemeine Methode Java Basics - Anfänger-Themen 5
S Allgemeine Fragen Java Basics - Anfänger-Themen 9
Luk10 OOP Sehr allgemeine Schnittstelle Java Basics - Anfänger-Themen 19
S allgemeine verständnisschwierigkeit Java Basics - Anfänger-Themen 5
G allgemeine Ressourcen-Verwaltung... Java Basics - Anfänger-Themen 3
T Hashset - Allgemeine Fragen Java Basics - Anfänger-Themen 19
C Sortierverfahren - allgemeine Lösung? Java Basics - Anfänger-Themen 9
J Allgemeine Fragen zur Programmierung Java Basics - Anfänger-Themen 36
S JDK installieren Allgemeine Fragen Java Basics - Anfänger-Themen 3
J [Neuling] Allgemeine Fragen zu Java Java Basics - Anfänger-Themen 20
A Allgemeine Fragen zu Java Java Basics - Anfänger-Themen 7
W Allgemeine Fragen Java Basics - Anfänger-Themen 11
G GridLayout Allgemeine Fragen Java Basics - Anfänger-Themen 2
I Allgemeine fragen zu Socket server Java Basics - Anfänger-Themen 6
G Login - Allgemeine Fragen Java Basics - Anfänger-Themen 6
G Allgemeine Schnittstelle für Ausgabe? Java Basics - Anfänger-Themen 5
A Allgemeine Fragen zu Java Java Basics - Anfänger-Themen 10
W allgemeine Fragen Java Basics - Anfänger-Themen 6
O allgemeine Exceptions abfangen Java Basics - Anfänger-Themen 17
E Allgemeine Anfrage Java lernen Java Basics - Anfänger-Themen 3
D Allgemeine Objekte abspeichern Java Basics - Anfänger-Themen 9
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
J Frage zum Loggen Java Basics - Anfänger-Themen 18
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31

Ähnliche Java Themen

Neue Themen


Oben