Socket server auf Smartphone

Z

Zetatron

Neues Mitglied
0
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:

Code:
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
 
Definier mal bitte was du unter "Richtigen" IPv4 adresse genau verstehst.

Ist das Smartphone im WLAN?

Ist das Smartphone im Internet?
 
Das Smartphone ist im Mobilen Internet. Über wlan könnte man das ja im Router einstellen.
 
Wenn du nicht eine "besondere" SIM Karte hast, dann hat die Telefongesellschaft
eine Firewall, die genau das verhindert was du vor hast.

Das macht extrem viel Sinn, weil sonst jedes Skripten Kind dein Gerät abballern könnte.

-> Ports kannst du i.A. nicht aufmachen, wenn du GPRS/UMTS/LTE verwendest.

Wenn du ggf. näher beschreiben kannst, was du erreichen willst, dann können wir dir hier vielleicht helfen.
 
Ich möchte strings zwischen dem smartphone und meinem pc senden. Kann man auch vordefinierte ports von ssh oder ftp benutzen für eine socket verbindung?
 
Was spricht gegen http wenn das Phone dem PC was sagen will?

Oder gegen GCM wenn der PC dem Phone was sagen will?
Wenn du GCM nicht nutzen willst muss das Phone halt alle x Sekunden nachfragen obs was neues gibt.

BTW: Du kannst natürlich am PC einen Port aufmachen und per Phone darauf zugreifen.
Auf dem Phone den Port aufmachen und vom PC darauf zugreifen geht nicht.

cu
 
Ich hab mal irgentwo gesehen, das man auf dem Smartphone einen Webserver installieren kann. Der benutzt dann ja auch einen auf dem Smartphone erstelleten port (80 soweit ich weis). Gibt es nicht von dem Provider schon freigeschaltete Ports (wie bei einem neuen router. der hat ja auch standartmäßig ein paar ports freigeschaltet) die man einfach für die Socket verbindung benutzen kann? Wenn ich in meinem Lokalen netz den port 22 der eig. für SSH reserviert ist benutze geht das auch. Kann man das auch außerhalb des heimnetzes (mobilfunk) machen? Ich kenn mich mit Netzwerkprogrammierung noch nicht gut aus, deswegen entschuldigt wenn ich manchmal etwas blöd frage ^^

LG Zetatron
 
Warum willst du unbedingt auf dem Phone nen Port öffnen? Abgesehen davon saugt das den Akku leer.

Und zum öffnen der niedrigen Ports (<1024?) braucht man AFAIK eh root Rechte.

cu
 
Zetatron schrieb:
Kann man das auch außerhalb des heimnetzes (mobilfunk) machen? Ich kenn mich mit Netzwerkprogrammierung noch nicht gut aus, deswegen entschuldigt wenn ich manchmal etwas blöd frage ^^

Das ist keine blöde Frage.

Leider ist es technisch nicht möglich.

Wenn das Handy eine (reguläre) SIM Karte hat, ist die IP Adresse "unsichtbar" vom Internet. Vergleichbar ist das mit deinem Router daheim. Der PC unter deinem Schreibtisch ist nicht von "außen" erreichbar.

-> nichts was du tun kannst, kann das ändern!
 
Ok, ich denke ich muss mich damit abfinden das es nicht geht. man kann ja auch das Smartphone als Client nehmen und einen Zentralen server auf einem pc haben der dann wiederum den client auf dem anderen pc die daten vom smartphone zusendet. Ich wollte das machen, damit ich mein raspberry pi auto mit meinem Smartphone unabhängig vom wlan steuern kann. In beiden geräten ist eine sim verbaut, also wäre es egal wo man den server hinsetzt. es wäre beides nicht gegangen ): Ich denke ich mache es mit der oben beschriebenen methode. Ein server und zwei Clients. Danke nochmal für die antworten.

LG Zetatron
 
Ja genau. Einen Rechner im Internet als Brückenkopf ist die einfachste Lösung.
 
VPN Tunneling geht natürlich auch.
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
134
swa00
swa00
Jansenwilson
Antworten
1
Aufrufe
762
swa00
swa00
Zurück
Oben Unten