Portfreigabe in Netzwerken?

Thraex

Mitglied
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
Java:
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
Java:
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 ) { } 
    } 
  } 
}
 
D

despikyxd

Gast
ä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
 
G

Gast2

Gast
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
 

Ähnliche Java Themen


Oben