Cómo implementar múltiples transmisiones y recepciones usando winsock en vb
Winsock en vb usa transmisión asincrónica, lo que significa que su extremo de envío For i = 1 To s (s es el número total de datos)
Winsock1.SendData s(i)
A continuación, parece que i se envía por separado S veces, pero VB puede fusionarlo y enviarlo todo a la vez o tal vez el contenido de una de sus matrices s es demasiado largo y VB lo dividirá varias veces; transmitirlo. Por lo tanto, cada segmento de datos debe controlarse antes de la transmisión. El método habitual es enviar la longitud de los datos al extremo receptor antes de enviar los datos cada vez y luego enviarlos. Su remitente se puede cambiar a lo siguiente: For i = 1 To s (s es el número total de datos)
Winsock1.SendData len(s(i)) amp chr(0) s; (i) 'Envíe primero la longitud de los datos, sepárela con chr(0) y simplemente invierta el procesamiento al recibir
Próximo código del receptor: primero defina una variable global s para guardar los datos que recibe, atenuar sPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim l, k, strLen As DoubleDim s1 como String
Winsock1.GetData s1, vbstring s=s amp; s , chr(0)) 'Separar datos de control de longitud si kgt; 0 entonces strLen=Left(s, InStr(s, Chr(0)) - 1) 'Obtener la longitud de los datos recibidos esta vez si len(s) gt; strLen -len(strLen) luego 'Si se deben recibir y fusionar suficientes datos s1=mid(s, len(strLen) 2, strLen) .................Esta vez se recibe s1. Datos completos, ¡puedes descubrir cómo procesar s1! s=mid(s, len(strLen) 2 strLen) 'Elimina este segmento de datos de s y continúa procesando el siguiente segmento end if end ifEnd Sub