Serververbindung im mobilen Netz

  • Antworten:6
Maximilian O
  • Forum-Beiträge: 990

17.07.2012, 15:49:06 via Website

Hallo Leute,
ich rätsle hier gerade an einem Problem welches ich einfach nicht nachvollziehen kann.

Ich versuche eine Verbindung zu einem Server aufzubauen, indem ich einen Socket anlege:
1Socket s = new Socket(ip, port);

Im WLAN funktioniert alles. Übergebe ich für ip und port gültige Werte wir deine Verbindung hergestellt, bei ungültigen Werten (sprich den Serverport gibt es nicht) bekomme ich eine Exeption. Supi.
Auf meinem Telefon (HTC Sensation) funktioniert dies ebenso im mobilen Netz. Auf anderen Telefonen aber nicht. Dort wird trotzdem ungültiger ip und port eine Verbindung aufgebaut.
An was kann das liegen? Funkt der Provider da dazwischen?

Liebe Grüße Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Maximilian O
  • Forum-Beiträge: 990

17.07.2012, 16:25:28 via Website

Kennt ihr eine andere Möglichkeit zu überprüfen ob ein Port auf einem Server zu erreichen ist?

Liebe Grüße Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Michael H
  • Forum-Beiträge: 127

17.07.2012, 16:30:50 via Website

Hey Maximilian

Was meinst du mit "anderen Telefonen". Wenn der Zielhost nicht erreichbar ist, kann ich mir nicht vorstellen dass du ein gültiges SocketObjekt zurück kriegst..? Vielleicht kannst du das ganze noch ein wenig genauer beschreiben?

Gruss michi

Antworten
Maximilian O
  • Forum-Beiträge: 990

17.07.2012, 16:38:20 via Website

Hi Michi,
hier ein kleines Beispiel:
Als IP habe ich einen Server den es auch gibt (188.165.218.118). Also Port nehmen wir mal 12345 (den es definitiv nicht gibt).
Teste ich das jetzt im WLAN: alles ok (ConnectExeption wie es sein soll)
Teste ich im mobilen Netz: alles ok (ConnectExeption wie es sein soll)

Testet mein Auftraggeber es auf seinem Galaxy Tab oder Galaxy S:
Im WLAN: alles ok (ConnectExeption wie es sein soll)
Im mobilen Netz: Verbindung aufgebaut (KEINE Exeption was nicht sein darf).

Kann da der Provider irgendwo dazwischenfunken?
Liebe Grüße Maximilian

— geändert am 17.07.2012, 16:38:51

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Michael H
  • Forum-Beiträge: 127

17.07.2012, 17:00:50 via Website

Hmmm... komisch!

Bin aktuell auch an einer Socketapp. Diese baut nach demselben Schema eine Socketverbindung auf und kommuniziert anschliessend über diese. Habe die App bereits auf Emulatoren, Samung Galaxy SII, Google Nexus, Samsung S5830i, Sony Ericsson Xperia Arc..... getestet und bei allen funktionierts.

Ich verwende jedoch nicht direkt die IP, Port Parameter sondern übergebe diese mithilfe eines InetSocketAddress(). Wäre bei dir mal ein Versuch wert..

Hier mein Codekonstrukt:

1socket = new Socket();
2socket.connect(new InetSocketAddress(ip, port), timeout);
3this.out = new DataOutputStream(socket.getOutputStream());
4this.in = new DataInputStream(socket.getInputStream());

Gruss Michi

Antworten
Maximilian O
  • Forum-Beiträge: 990

18.07.2012, 12:54:15 via App

Hi Michi,
leider immernoch der gleiche Fehler. Bei mir klappt alles (WLAN + Eplus Netz). Bei meinem Auftraggeber (Vodafone) wird IMMER eine Verbindung hergestellt. Obwohl es den Serverport nicht gibt.

Hast du dazu irgendeine Idee?

Liebe Grüße Maximilian

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Michael H
  • Forum-Beiträge: 127

18.07.2012, 13:51:24 via Website

Du sagst das SocketObjekt besteht. Versuch doch mal den InputStream sowie OutputStream raus zu holen. Funktioniert das auch?

1DataOutputStream out = new DataOutputStream(socket.getOutputStream());
2DataInputStream in = new DataInputStream(socket.getInputStream());

Antworten