# Erstes Netzwerkprogramm



## IwiS (30. Jan 2012)

Hallo,

ich habe mich heute das aller erste Mal der Netzwerkprogrammierung zugewandt. Habe mir ein bisschen was durchgelesen, und wollte ein Socket erstellen, und eine paar Infos über die Url haben.
Dazu habe ich folgenden Code erstellt:


```
import java.awt.*;
import java.awt.event.*;
import java.net.Socket;
import javax.swing.*;

public class Application extends JFrame
{
 public static void main(String[] args)
 {
  Application app = new Application();
  app.setLocation(625, 150);
  app.setSize(325, 250);
  app.setTitle("Client");
  app.setVisible(true);
 }
 public Application()
 {
  Socket socket = new Socket("www.wetter.com", 80);
  
 }
}
```

Mir ist bekannt, dass ich, um Infos über die Socketadresse des Servers zu bekommen, folgenden Code erstellen muss:


```
socket.getRemoteSocketAdress();
```

Allerdings weiß ich nicht, wie ich diese Info dann ausgeben soll, da ich es nicht über JLabel, oder JTextArea machen kann.
Wie soll ich das anstellen?

lg IwiS


----------



## TheDarkRose (30. Jan 2012)

Wieso sollst du es nicht in deiner GUI ausgeben lassen, wenn du schon eine GUI verwendest?


----------



## IwiS (30. Jan 2012)

Hi,

wenn ich versuche es in einem JLabel auszugeben, dann bekomme eine Fehlermeldung. Ich werde mal den Code + Fehlermeldung posten.

lg IwiS


----------



## IwiS (30. Jan 2012)

Hallo,

hier der Code:


```
import java.awt.*;
import java.awt.event.*;
import java.net.Socket;
import javax.swing.*;

public class Application extends JFrame
{
 public static void main(String[] args)
 {
  Application app = new Application();
  app.setLocation(625, 150);
  app.setSize(325, 250);
  app.setTitle("Client");
  app.setVisible(true);
 }
 public Application()
 {
  Socket socket = new Socket("www.wetter.com", 80);
  JLabel label = new JLabel(socket.getRemoteSocketAdress());
  add(label, BorderLayout.CENTER);
 }
}
```

lg IwiS


----------



## TheDarkRose (30. Jan 2012)

Ich sehe hier keine Fehlermeldung


----------



## xehpuk (30. Jan 2012)

Erst solltest du die Grundlagen beherrschen. Dann an fortgeschrittene Themen wie Netzwerkprogrammierung heranwagen.

Lesson: Exceptions (The Java™ Tutorials > Essential Classes)

Allgemeine Kompetenzen: http://www.java-forum.org/forum-faq-beitraege/7407-man-fragen-richtig-stellt.html


----------



## IwiS (30. Jan 2012)

Hallo,

könnte mir bitte jemand sagen, was an dem von mir eingestellten Code falsch ist, bzw. wie ich die Fehler korrigieren kann? 

lg IwiS


----------



## TheDarkRose (30. Jan 2012)

Könntest du mal die genaue Fehlermeldung posten? Geht nicht ist keine Fehlermeldung.


----------



## IwiS (30. Jan 2012)

Hallo,

hier die Fehlermeldung

lg IwiS


----------



## xehpuk (30. Jan 2012)

Fehlermeldungen sind da, um sie zu lesen.

Der Compiler sagt dir, dass es keine Methode 
	
	
	
	





```
getRemoteSocketAdress()
```
 für den Typ 
	
	
	
	





```
Socket
```
 gibt. Also überprüf das hier: Socket (Java Platform SE 7)


----------



## IwiS (30. Jan 2012)

Hallo,

doch, auf der Seite deines Linkes steht es als Methode.

lg IwiS


----------



## IwiS (30. Jan 2012)

Hallo,

wenn ich z.B. getPort() verwende, kommt die angehängte Fehlermeldung. Was soll ich jetzt machen?

lg IwiS


----------



## Tomate_Salat (30. Jan 2012)

Trotzdem hilft api lesen. Es gibt kein: [japi]JLabel#JLabel(SocketAddress)[/japi].


----------



## xehpuk (30. Jan 2012)

IwiS hat gesagt.:


> doch, auf der Seite deines Linkes steht es als Methode.


Nein.


```
toSting()
```
 ist auch nicht dasselbe wie 
	
	
	
	





```
toString()
```
.


----------



## IwiS (31. Jan 2012)

Hallo,

ich finde es zwar toll, wenn mir viele Leute erklären, was die Fehler sind, aber könnte mir jemand erklären, was eine mögliche Lösung ist? Wäre euch sehr dankbar!

lg IwiS


----------



## Tomate_Salat (31. Jan 2012)

a) Methoden richtig schreiben
b) In die Doku schauen, welche Parameter übergeben werden können+deren Typ

Schreiben tun wirs dir nicht, ein wenig Eigeninitiative ist hier schon angebracht ;-)


----------



## IwiS (31. Jan 2012)

Hallo,

mit JLabel geht es also schonmal nicht. Kennt jemand einen Komponenten, dem dieser Parameter übergeben werden kann?

lg IwiS


----------



## xehpuk (31. Jan 2012)

Wie sieht deiner Meinung nach die visuelle Repräsentation einer 
	
	
	
	





```
SocketAddress
```
 aus?


----------



## Plopo (31. Jan 2012)

Im Grunde hat "xehpuk" schon alles genannt was du brauchst um deine SocketAddress in einerm JLabel dazustellen.


----------



## IwiS (31. Jan 2012)

Hallo,

könntest du mir genauer erklären, was eine visuelle Repräsentation ist?

lg IwiS


----------



## xehpuk (31. Jan 2012)

Du wolltest einem 
	
	
	
	





```
JLabel
```
 eine 
	
	
	
	





```
SocketAddress
```
 übergeben. 
	
	
	
	





```
JLabel
```
 ist eine GUI-Komponente. Deswegen gehe ich davon aus, dass du die 
	
	
	
	





```
SocketAddress
```
 irgendwie anzeigen willst. Jetzt ist die Frage, wie sie aussehen soll. Wie stellst du dir das vor?

Willst du nur die textuelle Repräsentation, so reicht dir vielleicht die standardmäßig vorhandene 
	
	
	
	





```
toString()
```
. Soll der Text anders aussehen, musst du dir einen eigenen Formatter schreiben.
Willst du hingegen etwas "zum Sehen" haben, musst du dir eigene Zeichenroutinen überlegen.


----------



## IwiS (31. Jan 2012)

Hallo,

ich möchte die textuelle Repräsentation.

lg IwiS


----------



## Tomate_Salat (31. Jan 2012)

Das mit "Eigeninitiative" war kein Witz von mir. 

Schau in der Api nach, was dir zu [japi]JLabel[/japi] zur Verfügung steht und, soviel sei verraten, nutze die toString()-Methode von der Xehpuk geredet hat.

Wenn du nicht imstande bist, solch eine einfache Aufgabe mit der Api zu lösen (vor allem nach den ganzen Hinweisen von uns), dann ist GUI-Programmierung noch nichts für dich. Grundlagen (dazu gehört auch Apis lesen) sollten da schon vorhanden sein.


----------



## IwiS (31. Jan 2012)

Hallo,

habe es mit der toString() Methode hinbekommen, danke an alle!

lg IwiS


----------

