Socket server auf Smartphone

  • Antworten:3
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 2

19.11.2014, 16:53:30 via Website

Hi, ich will eine verbindung zwischen PC und Smartphone via Sockets herstellen. Es funktioniert auch alles im Lokalen netzwerk, aber wenn ich es mit den "Richtigen" IPv4 adresse mache. geht es nicht. Muss ich den benutzten Port forwarden? Wenn ja wie geht das? Hier der code vom Server:

public void StartThread(){
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            while(true){
                try {
                    System.out.println("Starting Server");
                    server = new ServerSocket(8080);
                    System.out.println("Waiting for Connection");

                    s = server.accept();
                    System.out.println("Client connected");

                    while(true){
                        if(!s.isConnected()){
                            connected = false;
                            break;
                        }else{
                            connected = true;
                        }
                        if(!input.equals("null")) {
                            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

                            out.write(input);
                            out.newLine();
                            out.flush();
                            input = "null";
                        }else{
                            try{
                                Thread.sleep(50);
                            }catch (Exception e){System.out.println(e.toString());}
                        }
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    System.out.println(e.toString());
                }


            }
        }
    });
    t.start();
}

Wenn ich versuche mich mit dem Client zu verbinden geht es nicht, da er den host nicht findet.
LG Zetatron

Antworten
  • Forum-Beiträge: 11.179

19.11.2014, 18:52:45 via App

Hast du auf beiden seiten dein Portforwarding richtig eingestellt?
Denn du brauchst das ja sowohl bei Android als auch bei deinen Heimnetz(router).
PS:
Ich würde dir empfehlen Sockets nur im lokalen Netz zu benuzen andernfalls eröffnest du damit ein zu hohes Sicherheitsrisiko.
Theoretisch kannst du deine Daten auch mittels http(s) übermitteln, dafür benöfigst du nur einen Webserver auf einem gemappten port. Dann hadt du das problem auf der Android seite nichtmehr.

Wie bekommst du eigentlich die Ipv4 deinen Handys im mobiletz heraus?
wieistmeineip.de?
und kannst du die herausgefundene IP Pingen?

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 2

19.11.2014, 20:02:07 via Website

Es ist über das Mobil netz verbunden. Der server soll also offen für alle Clients sein die sich nicht in dem lokalen netz befinden. Kann man überhaupt einen port vom smartphone ins Internet forwarden? Wenn ich einen Webserver erstellen würde, könnte der dann auf dem Android laufen? Die IP habe ich von wieistmeineip.de und ich kann sie nicht anpingen (Time out).

LG Zetatron

Antworten
  • Forum-Beiträge: 11.179

19.11.2014, 21:36:15 via App

Mit ein bisschen Suchen wird man dafür eine Lösung finden köbnen, aber es wurde absichtlich so schwer gemacht dsmit die Sicherheit nicht gefärdet wird. Was hast du denn vor bzw. warum muss dein Smartpgone überhaupt ein Server sein? Kannst du da nicht einen PC oä für nehmen?
Bitte beschreibe dann auch dein Vorhaben genauer, damit ich dir sagen kann ob es Alzernativen gibt.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten