# Portfreigabe in Netzwerken?



## Thraex (13. Apr 2011)

Hallo liebe Community,
ich wollte zum Test ein Programm schreiben, dass nur einen String von einem PC zum anderen Senden kann.
Naja wenn beide Programme (Server + Client) auf dem selben Rechner laufen, dann klappt alles ohne Probleme, aber wenn ich jetzt von meinem PC Daten zu dem von meiner Schwester senden will klappt es nicht.
Nun zu meiner Frage: muss ich innerhalb eines LAN erst Ports freigeben um Daten senden zu können? und wenn ja, wie triggere ich diesen Port???:L?
Vielen Dank im Vorraus

wen es ineressiert hier der Code:
Server

```
public class Server 
{ 
  private static void handleConnection( Socket client ) throws IOException 
  { 
    Scanner     in  = new Scanner( client.getInputStream() ); 
 
 
    String factor1 = in.nextLine(); 
 
 JOptionPane.showMessageDialog(null,"(s)"+factor1);

  } 
  public static void main( String[] args ) throws IOException 
  { 
  	 String Port = JOptionPane.showInputDialog("Port (s)");
    ServerSocket server = new ServerSocket( Integer.parseInt (Port) ); 
 
    while ( true ) 
    { 
      Socket client = null; 
 
      try 
      { 
        client = server.accept(); 
        handleConnection ( client ); 
      } 
      catch ( IOException e ) { 
        e.printStackTrace(); 
      } 
      finally { 
        if ( client != null ) 
          try { client.close(); } catch ( IOException e ) { } 
      } 
    } 
  } 
}
```

Client

```
class Client 
{ 
  public static void main( String[] args ) 
  { 
    Socket server = null; 
    String name = JOptionPane.showInputDialog("Name des servers (cl)");
    String Message = JOptionPane.showInputDialog("nachricht (cl)");
    String Port = JOptionPane.showInputDialog("Port (cl)");
    try 
    { 
      server = new Socket(name, Integer.parseInt (Port) );
      Scanner     in  = new Scanner( server.getInputStream() ); 
      PrintWriter out = new PrintWriter( server.getOutputStream(), true ); 
 
      out.println( Message ); 

    } 
    catch ( UnknownHostException e ) { 
      e.printStackTrace(); 
    } 
    catch ( IOException e ) { 
      e.printStackTrace(); 
    } 
    finally 
    { 
      if ( server != null ) 
        try { server.close(); } catch ( IOException e ) { } 
    } 
  } 
}
```


----------



## despikyxd (13. Apr 2011)

ähäm ... es wäre vllt mal interressant WAS du als HOST-namen verwendest ... der normale WINDOWS-RECHNER-NAME des SMB-protocols wird hier nicht funktionieren wenn du im netz keinen DNS hast der diesen auflöst ...
schon mal die IP des servers getestet ? ... vllt hilfts


----------



## Gast2 (13. Apr 2011)

IPs sind immer besser als der Windowsname ... in letzteren Fall muss man damit leben das der Name einfach nicht aufgelöst wird (unter diversen Umständen) ... auérdem spielt eine Firewall im Netzwerk immer eine schöne ernstzunehmende Rolle


----------



## Thraex (15. Apr 2011)

Vielen Dank, es klappt jetzt 
ich musste, wie es schon gesagt wurde bei name einfach nur meine Netzwerk IP eingeben.


----------

