German ServiceModul einsetzen

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
Hallo,

weis einer, wie ich den Sub
B4X:
Sub AStreams_NewData (Buffer() As Byte)
...

......
end sub

in einem ServiceModul zum laufen bringen kann?

ich habe versucht in SM
B4X:
Sub Service_Create
codlar.Astreams.Initialize(codlar.Socket1.InputStream, codlar.Socket1.OutputStream, "AStreams")
End Sub

Sub AStreams_NewData (Buffer() As Byte)
...

......
end sub

zwar wird beim compilieren keine Fehlermeldung ausgegeben, aber die ankommenden Daten werden nicht angenommen.

wie ist das zu realisieren, wenn ich zwei activitys habe und auf beide activitiy möchte ich empfangene daten bearbeiten bzw. anzeigen.

gruß
sinan
 

Sinan Tuzcu

Well-Known Member
Licensed User
Longtime User
niemand ne idee?

ich möchte nur diesen code von Erel in ein SM packen, wer weis wie das geht?

B4X:
Sub Process_Globals
    Dim AStreams As AsyncStreams
    Dim Server As ServerSocket
    Dim Socket1 As Socket
End Sub
Sub Globals
    Dim EditText1 As EditText
End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then
        Server.Initialize(5500, "Server")
        Server.Listen
        Log("MyIp = " & Server.GetMyIP)
    End If
    EditText1.Initialize("EditText1")
    EditText1.ForceDoneButton = True
    Activity.AddView(EditText1, 10dip, 10dip, 300dip, 60dip)
End Sub

Sub Server_NewConnection (Successful As Boolean, NewSocket As Socket)
    If Successful Then
        ToastMessageShow("Connected", False)
        Socket1 = NewSocket
        AStreams.InitializePrefix(Socket1.InputStream, False, Socket1.OutputStream, "AStreams")
    Else
        ToastMessageShow(LastException.Message, True)
    End If
    Server.Listen
End Sub

Sub AStreams_NewData (Buffer() As Byte)
    Dim msg As String
    msg = BytesToString(Buffer, 0, Buffer.Length, "UTF8")
    ToastMessageShow(msg, False)
    Log(msg)
End Sub

Sub AStreams_Error
    ToastMessageShow(LastException.Message, True)
End Sub

'press on the Done button to send text
Sub EditText1_EnterPressed
    If AStreams.IsInitialized = False Then Return
    If EditText1.Text.Length > 0 Then
        Dim buffer() As Byte
        buffer = EditText1.Text.GetBytes("UTF8")
        AStreams.Write(buffer)
        EditText1.SelectAll
        Log("Sending: " & EditText1.Text)
    End If
End Sub

Sub Activity_Pause(UserClosed As Boolean)
    If UserClosed Then
        Log("closing")
        AStreams.Close
        Socket1.Close
    End If
End Sub
 
Top