Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/03/2006, 00:26
LeandroA
 
Fecha de Ingreso: abril-2005
Mensajes: 351
Antigüedad: 20 años
Puntos: 3
Hola creo hay varias formas de hacerlo yo por ejemplo una forma que utilize y me fue eficiente es esta

Cita:
Dim Resto As String
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Dato As String
Winsock1.GetData Dato, vbNullString
Separar (Dato)
End Sub

Sub Separar(Cadena As String)
On Error GoTo Final
Dim Dato As String
Cadena = Resto & Cadena
Resto = ""
Do Until Cadena = ""

If Len(Replace(Cadena, "t#z@", ".")) < Len(Cadena) Then
Dato = Left(Cadena, InStr(Cadena, "t#z@") - 1)
DataArrival2 (Dato)
Cadena = Right(Cadena, Len(Cadena) - Len(Dato) - 4)
Else
Resto = Cadena
Exit Sub
End If
Loop
Exit Sub
Final:
End Sub

Sub DataArrival2(dato as string)
blbalbalba
End Sub
y en el cliente enviava el dato de esta forma

Cita:
Winsock1.SendData Orden & "t#z@"

otra forma es hacer enviando el dato y hacer un do wile asta que contestar el cliente o el servidor por ej:

Cita:
Dim Confirma As Boolean
Sub ConfirmarEnvio()
Confirma = False
Winsock1.SendData "#Confirma#"
While Not Confirma = True 'creo un bucle hasta que confirme la llegada del paquete
DoEvents
Wend
End Sub

Private Sub Enviardato()
For i = 1 To 10
Winsock1.SendData dato(i)
ConfirmarEnvio
Next
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim dato As String
Winsock1.GetData dato, vbNullString
Select Case dato
Case Is = "#Confirma#"
Confirma = True
End Sub
y en la otra parte (cliente o servidor)

Cita:
Winsock1.GetData dato, vbNullString
Select Case dato
Case Is = "#Confirma#"
Winsock1.SendData "#Confirma#"
yo en ambas formas me funciona bien porque siempre tienes que tener en cuenta que una cosa, es provarlo en tu pc y otra es con dos pc donde el dato puede tardar mas o menos en llegar y de estas dos formas el dato se separa correctamente
__________________
www.leandroascierto.com