Hab ich auch, mit der Kopfzeile:
47FirstConnect|Verbunden mit Yamutec
ETH-HYBRID16|0|0|0|27|0|192.168.178.27|255.255.255.0|192.168.178.1|2005|0|2019210200|00:08C:05:50:4D|
47Continuous|0|0|||0|27|0|0|....
Die Yamutec ETH-HYBRID16 hat vielleicht verschiedene Betriebsmodi. Die Website von Yamutec ist grottenschlecht, sehr viele 404 und kein SDK download für Ethernet module.
HOP RTT ADDRESS
1 16.00 ms compalhub.home (192.168.0.1)
2 32.00 ms XXX.XXX.XXX.XXX
3 32.00 ms XXX.XXX.XXX.XXX
4 47.00 ms de-byd01a-rd02-ae0-0.aorta.net (84.116.196.202)
5 47.00 ms de-fra01b-rc1-ae26-0.aorta.net (84.116.197.73)
6 47.00 ms de-fra01b-ri1-ae0-0.aorta.net (84.116.134.6)
7 47.00 ms 62.157.248.113
8 47.00 ms 87.137.239.89
9 47.00 ms p5B37F7A0.dip0.t-ipconnect.de (91.55.247.160)
Habe mit VB Software verbunden und es tut was es tun soll.
Also gemeint ist, wenn ich 10 Sec. Timeout einstelle, dann dauert die Verbindungsaufbau wirklich 10Sek.
Habe das Laptop über das Handy per Hotspot über das Vodafone Netz verbunden.
Ein selbst gestricktes VB Tool, die eine TCP Verbindung aufbaut. Also nichts Welt bewegendes.
Quelle: activeVB.de
Ok, das macht alles keinen sinn. 1) B4A benützt das unterliegende Android/Java um die Verbindung aufzubauen. Das ist so stinknormal für B4A und Java, dass irgendwo was falsch gemacht wird.
Entweder a) bekommst du eine Verbindung oder b) eine Fehlermeldung in Java. So 1) entweder benütze Debug Mode oder 2) benütze #BridgeLogger: True. Lass das Programm über B4A-bridge laufen oder über ein USB kable.
das Mann endlich mal mitkriegt warum es nicht verbindet. Und gebe uns die Fehlermeldung(en). Und kein WiFi oder HotSpot auf dem Handy wenn du das B4A app laufen lässt.
Prefix mode can only be used if both sides of the connection follow the "prefix" protocol. In most cases you can only use this mode when you implement both sides of the connection.
Null Information auf der Yamutec Seite über das Ethernet Interface keine API keine DLL kein PDF, das VBNetsample mit ymlib.dll beschreibt nur das HID USB Interface.
Kurze Recherche im Web brachte auch keine weiteren Informationen. Alles sehr exotisch und merkwürdig.
die Zeile "Dim client As Socket" ist falsch, du hast das Objekt doch oben (bei
Process_Globals
) schon definiert
und Du möchtest doch auch Ereignisse bekommen außerhalb deiner Funktion.
Nutze Initialize nur einmal, du mußt nicht jedesmal ein neues Objekt erstellen.
Initialize ist wie "New" bei C#
B4X:
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
was #53 meint nimm mal astream.Initialize nicht astream.InitializePrefix
dieses Prefix setzt immer noch die länge vor den Daten, das ist sehr nützlich aber unüblich.