B4J Question TCP Server

Declan

Well-Known Member
Licensed User
Longtime User
I am using the following example: https://www.b4x.com/android/forum/threads/b4x-network-asyncstreams-b4xserializator.72149/#content
I am sending data to the B4J app from a remote device.
I do not require any "Prefix" or "Header" in the message and have changed to:
B4X:
Private Sub ListenForConnections
    Do While working
        server.Listen
        Wait For Server_NewConnection (Successful As Boolean, NewSocket As Socket)
        If Successful Then
            CloseExistingConnection
            client = NewSocket
            astream.Initialize(client.InputStream,  client.OutputStream, "astream")
            UpdateState(True)
        End If
    Loop
End Sub
This throws an error:
B4X:
main._astream_newdata (java line: 109)
java.util.zip.ZipException: incorrect header check
    at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:165)
    at java.base/java.util.zip.InflaterInputStream.read(InflaterInputStream.java:123)
    at java.base/java.io.DataInputStream.readByte(DataInputStream.java:270)
    at anywheresoftware.b4a.randomaccessfile.B4XSerializator.readByte(B4XSerializator.java:133)
    at anywheresoftware.b4a.randomaccessfile.B4XSerializator.readObject(B4XSerializator.java:301)
    at anywheresoftware.b4a.randomaccessfile.B4XSerializator.ReadObject(B4XSerializator.java:112)
    at anywheresoftware.b4a.randomaccessfile.B4XSerializator.ConvertBytesToObject(B4XSerializator.java:82)
    at b4j.example.main._astream_newdata(main.java:109)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
    at anywheresoftware.b4a.BA$2.run(BA.java:230)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    at java.base/java.lang.Thread.run(Thread.java:834)
 
Top