Hola buenos dias, en mi app envío desde mi servidor a la app unos datos por B4xserializator (astrem.write), mi problema es que si no estoy conectado al servidor esos datos se pierden. Habría alguna forma de esperar a estar conectado para enviar los datos? he probado con los subs reanudables, (wait for, etc) pero aun no consigo hacerlo funcionar bien. gracias
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.InitializePrefix(client.InputStream, False, client.OutputStream, "astream")
conected = true
End If
Loop
y para enviar llamo a un sub mas o menos asi:
B4J:
Sub enviar
Dim mm As messaje
mm.initilize
mm.Dato1 = xxxx
mm.Dato2 = xxxx
if conected = true then
astream.write(ser.ConvertObjectToBytes(mm))
entonces siempre que llamo a este sub y estoy conectado envio, pero si no estoy conectado quiero esteperar a estarlo y enviar
Sub sendFile
Dim mm As Message
mm.Initialize
mm.WSconfirmaOK = WSx
mm.BLconfirmaOK = BLx
DateTime.DateFormat = "dd/MM/yyyy"
mm.fechaBidon = DateTime.date(DateTime.Now)
mm.horaBidon = DateTime.Time(DateTime.Now)
mm.NumVIN = VINDato
If connected = True Then
astream.Write(ser.ConvertObjectToBytes(mm))
Else
Do While esperaCONECTAR
If connected = True Then
astream.Write(ser.ConvertObjectToBytes(mm))
esperaCONECTAR = False
End If
Sleep(100)
Loop
End If
End Sub
Una vez entro en este sub para enviar los datos. Primero pregunto si estoy conectado, si lo estoy, los envió. Y si no, entro en un do while hasta estar conectado, los envió y salgo. Funciona pero no se si habría otra forma mejor.