German TCP/IP Verbindung kann nicht aufgebaut werden

Sinan Tuzcu

Well-Known Member
Licensed User
Main:
B4X:
#Region  Project Attributes
    #ApplicationLabel: B4A Example
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: portrait
    #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
 
    Private btnConnect As Button
    Private btnSend As Button
    Private IPtxt As EditText
    Private lblStatus As Label
    Private txtPort As EditText
    Private ImageView1 As ImageView
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("FrmMain")
 
 
End Sub

Sub Activity_Resume
    SetState
End Sub

Public Sub SetState
    btnSend.Enabled = Starter.connected
    If Starter.connected Then
        btnConnect.Text = "Disconnect"
        lblStatus.Text = "Connected"
    Else
        btnConnect.Text = "Connect"
        lblStatus.Text = "Disconnected"
    End If
 
End Sub


Sub btnSend_Click
    CallSub2(Starter, "SendData", "0")
End Sub

Public Sub Data_Received (data() As Byte)

End Sub

Sub btnConnect_Click
    If Starter.connected = False Then
        If IPtxt.Text.Length = 0 Then
            ToastMessageShow("Please enter the server ip address.", True)
            Return
        Else
            CallSub3(Starter, "ConnectToServer", IPtxt.Text, txtPort.Text)
        End If
    Else
        CallSub(Starter, "Disconnect")
    End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub


Starter:
B4X:
#Region  Service Attributes
    #StartAtBoot: False
    #ExcludeFromLibrary: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Public connected As Boolean
    Private client As Socket
    Private astream As AsyncStreams
End Sub

Sub Service_Create
    'This is the program entry point.
    'This is a good place to load resources that are not specific to a single activity.

End Sub

Sub Service_Start (StartingIntent As Intent)
End Sub

Public Sub ConnectToServer(Host As String, Port As String)
    Log("Trying to connect to: " & Host)
    CloseExistingConnection
    Dim client As Socket
    client.Initialize("client")
    client.Connect(Host, Port, 10000)
    Wait For Client_Connected (Successful As Boolean)
    If Successful Then
        astream.InitializePrefix(client.InputStream, False, client.OutputStream, "astream")
        UpdateState (True)
    Else
        Log("Failed to connect: " & LastException)
    End If
End Sub

Public Sub Disconnect
    CloseExistingConnection
End Sub

Sub CloseExistingConnection
    If astream.IsInitialized Then astream.Close
    If client.IsInitialized Then client.Close
    UpdateState (False)
End Sub

Sub UpdateState (NewState As Boolean)
    connected = NewState
    CallSub(Main, "SetState")
End Sub

Sub AStream_Error
    UpdateState(False)
End Sub

Sub AStream_Terminated
    UpdateState(False)
End Sub
 

Attachments

  • 2.PNG
    2.PNG
    16.3 KB · Views: 186
Last edited:

Sinan Tuzcu

Well-Known Member
Licensed User
Hallo,

ich hatte diesen Beitrag vor 34 Tagen erstellt und hatte gehofft, das mir jemand ein Paar Tipps geben könnte.

Mit dem Code aus den ersten Beitrag, kann ich mich mit dem App über das Internet per IP Nummer verbinden.

Sobald ich statt die IP Nummer, die myfritz Adresse eintrage, kann keine Verbindung aufgebaut werden.

Um Fehler auszuschließen: Fritz App kann mit der myfritz Adresse über das Internet verbinden.

Wer weiß mehr darüber?
 

MarkusR

Well-Known Member
Licensed User
myfritz Adresse ist zufällig https ?
 

OliverA

Expert
Licensed User
What is the exact error message? How are you connecting? Over WiFi? Over cellular? First though: Error message?
 

OliverA

Expert
Licensed User
Mit dem Code aus den ersten Beitrag, kann ich mich mit dem App über das Internet per IP Nummer verbinden.
Sobald ich statt die IP Nummer, die myfritz Adresse eintrage, kann keine Verbindung aufgebaut werden.
es gibt keine Fehler Meldung. Die Verbindung wird einfach nicht erstellt.
Was? Wenn keine Verbindung aufgebaut werden kann, dann mault das unterliegende Java Framework. Benützt du Debug Mode?
 

MarkusR

Well-Known Member
Licensed User
Unwissend: Was ist denn eine MyFritz-Adresse?
https://avm.de/darum-fritz/

sone FRITZ!Box (z.B. Internet Modem Router mit WLAN) kann man aus dem Internet erreichen,
da ist quasi ein Web Server eingebaut.

https://avm.de/produkte/fritzbox/fritzbox-7560/technische-daten/
Komfort für das Heimnetz
  • Mediaserver stellt Geräten im Heimnetz Musik, Bilder und Filme zur Verfügung (DLNA/UPnP AV)
  • Mit MyFRITZ! von überall sicherer Zugriff auf die eigene FRITZ!Box
  • FRITZ!NAS – einfacher Zugriff auf alle Dateien im Netzwerk
  • Vernetzte Anwendungen wie IPTV, Video on Demand und Mediastreaming
  • Kindersicherung, Push Service, Cloud-Kontakte, Online-Speicher
  • Gastzugang: bestehenden Internetzugang über LAN oder WLAN mitnutzen
  • Wake on LAN per Internet
  • Unterstützt DLNA-fähige Geräte
  • Unterstützt auch Online-Speicher, Internetradio und Podcasts
  • Dateien einfach und sicher mit Freunden teilen
 

MarkusR

Well-Known Member
Licensed User
Wundert mich nicht, dass über diese URL kein PC beim TO reagiert.
Die Seite liegt bei AVM und zeigt nicht auf eine Fritzbox beim TO.

Oder sehe ich das falsch?
Ich denke das ist sowas wie ein DynDNS Service, der Router gibt die öffentliche IP weiter
das man die per Name dann über den Web Service ansprechen kann.

MyFRITZ! Service
https://en.avm.de/index.php?id=26293
 

DonManfred

Expert
Licensed User
das man die per Name dann über den Web Service ansprechen kann.
Aber Sinan möchte ja vermutlich nicht an die Fritzbox sondern an eine Serversoftware auf seinem PC oder nicht?
Dazu muss in der Fritzbox/Router eine entsprechende Portweiterleitung eingerichtet sein.
 

MarkusR

Well-Known Member
Licensed User
Aber Sinan möchte ja vermutlich nicht an die Fritzbox sondern an eine Serversoftware auf seinem PC oder nicht?
Dazu muss in der Fritzbox/Router eine entsprechende Portweiterleitung eingerichtet sein.

@Sinan Tuzcu
was ist der Sinn dieser Verbindung von deinem Android Gerät App zum Router Web Service oder weiter zum PC zu einer App die auf Port xxxxx lauscht?
 

Sinan Tuzcu

Well-Known Member
Licensed User
Hallo Zusammen,

mein FritzBox hat eine DynIP = 72.xxx.xxx.xxx und eine Feste Name xxxxx.myfritz.net
Mit der dynIP von dem Anbieter (Telekom) kann ich mich mit meinem Gerät, was am Fritzbox angeschlossen ist verbinden.
Mit der myfritz.net Adresse bzw. Name, kann ich keine Verbindung aufbauen.

Auszuschließen sind:
Die myfritz.net adresse ist funktionsfähig, da die Adresse bereits für andere Apps ebenfalls verwendet wird.
Das Gerät ist über das Internet erreichbar, da mit der dynIP vom Telekom verbinden lässt.
Auch die Portweiterleitung im FB ist aktiv.

So, daher die Frage, muss ich in B4A was anderes tun, damit eine Verbindung aufgebaut wird?


@Sinan Tuzcu
was ist der Sinn dieser Verbindung von deinem Android Gerät App zum Router Web Service oder weiter zum PC zu einer App die auf Port xxxxx lauscht?
Das Android APP steuert ein IO Modul, was am FB angeschlossen ist.
https://www.yamutec.de/produkte/ethernet-module/

VG
Sinan
 

MarkusR

Well-Known Member
Licensed User
Interessant ist eigentlich der Port, du hast nach Außen (Intermet) einen Port offen und der Router leitet den an einen eingestellten Port innen weiter.
Das meinte Manfred mit der Portweiterleitung die man einstellen muß.

Bei dieser xxxxx.myfritz.net Addresse muß dann deine öffentliche IP hinterlegt sein die im Router angezeigt wird.
Diese öffentliche IP + Port ist dann gemappt auf eine IP + Port deiner Wahl in deinem lokalem Netzwerk.

Selber nutze ich diesen Service https://www.noip.com/
dort habe ich ein Domain Name und meine FritzBox meldet sich da an (muss man natürlich einstellen) und übergibt dort die öffentliche IP.
 

MarkusR

Well-Known Member
Licensed User

thetahsk

Active Member
Licensed User
Die o.a. Prozedur ist ein Verbindungstest der als erstes durchgeführt werden sollte um zu prüfen ob er grundsätzlich eine Verbindung ohne "MyFritz!" im Browser aufbauen kann.
 

OliverA

Expert
Licensed User
Top