Explicación del código fuente de Vb
Privado MaxChan As Integer 'No es necesario explicar esto, ¿verdad?
Private Sub cmdexit_Click()'Este proceso es cuando se presiona el botón cmdexit el programa finaliza.
Fin
Conector final
Subform_Load() privado
Marcar I como un número entero
MaxChan = 15 'Asigna un valor a MaxChan.
Para i = 1 a MaxChan-1 'Period
Load sckServer(i)' carga los elementos en la matriz de control winsock.
A continuación
Scklisten. localport = 1001 'Establece el puerto local llamado scklisten en 1001.
Comienza a escuchar en el puerto.
Conector final
Private Sub sckBusy_Close()'Este proceso se ejecuta cuando finaliza el control winsock de sckBusy y el resultado se cierra.
sckOcupado. Cerrar
Conector final
subskbusy privado _ llegada de datos (byval bytestotal mientras) 'Este proceso es el proceso cuando el winsock de sckbusy recibe los datos enviados por el cliente, la siguiente oración significa enviando la frase "El servidor está ocupado, ¡conéctese más tarde!"
SckBusy. SendData "El servidor está ocupado, ¡conéctese más tarde!"
Actividades múltiples
Conector final
sub sck privado escucha _ solicitud de conexión (el ID de solicitud byval es largo) ' sckescucha el proceso de solicitud de conexión de este control.
Marcar I como un número entero
Determinar qué Winsock aceptará la solicitud.
For i = 0 to MaxChan-1 'Recorre los elementos en todas las matrices de control winsock.
si sckServer(i). Estado = 0 Entonces cuando los elementos de la matriz de control no están conectados.
Exit For sale del bucle.
Terminará si...
Siguiente i
si sckServer(i). Estado = 0 Entonces 'Si este winsock no está conectado.
SckServer(i). Aceptar requestID 'Acepto la conexión del cliente.
Conector de salida
Finalizará si la solicitud no recibió respuesta.
Para evitar errores, desconecte el control sckbusy una vez.
Sckbocupado. "acceptrequestid" le dice a sckbbusy que se dé la mano con el cliente para significar aceptar la solicitud de conexión del cliente.
Conector final
private Sub sckListen _ Error (el número de ByVal es un entero, la descripción es una cadena, el código de ByVal es largo, la fuente de ByVal es una cadena, el archivo de ayuda de ByVal es una cadena, el contexto de ayuda de Byval es largo , canceladodisplayas boolean)' Este proceso es el proceso de depuración de sck listening.
"Cerrar" finaliza la monitorización de scklisten.
sckEscucha. Puerto local = 1000
Los dos pasos anteriores son para restablecer scklisten y dejar que comience a escuchar nuevamente.
Conector final
subskserver privado _ close(index as integer)' Este proceso se realiza cuando el control en la matriz de control winsock está cerrado.
SckServer(índice). "Cerrar" cierra esta conexión.
Conector final
subskserver privado _ llegada de datos (el índice es un número entero, byval bytestotal es largo)' cuando el control en la matriz de control recibe un mensaje del cliente.
Dim s como una cadena
Dark I como un número entero
SckServer(index). GetData s 'Extraer mensajes.
Ifucase (left (trim(s), 2)) = "pt" y luego 'determina si es un susurro, punto a punto.
El "PT" en la frase anterior es un código específico escrito por el programador, es decir, si los dos primeros caracteres del mensaje son PT, es la palabra secreta.
Si el tercer carácter en medio del mensaje extraído es un número, entonces If es un número (mid (trim(s), 3, 1)).
I = Mid(Trim(s), 3, 1)' Asigname un valor con este número.
sckServer(i). Enviar canal de datos. Índices y Exponentes. "& ampRight(Trim(s), Len(Trim(s))-3) reenvía este mensaje al cliente numerado I.
Múltiples actividades
Si... Será end
Modo de transmisión "Else"
De lo contrario, es el modo de transmisión, que se reenvía a todos los clientes
For i = 0 to MaxChan-1 ' Loop
Utilice la propiedad State de winsock para enviar mensajes a todos los clientes conectados al servidor.
Si sckServer(i) Cuando el estado del cliente está conectado, State = 7 Entonces'. >
sckServer(i).SendDataChannel.index&Trim 'Reenviar mensaje
Finalizar si /p>
Siguiente I
Terminará si...
lstReceive. Agregar canal de artículo. Índices y Exponentes. "& amp "Trim(s)" guarda el mensaje recibido en el control de lista lstreceive.
Conector final
servidor Sub sck privado _ Error (el índice es un número entero, el número ByVal es un número entero , La descripción es una cadena, ByVal Scode es largo, ByVal Source es una cadena, el ayudante de Byval es una cadena, el ayudante de byval es largo, la visualización de cancelación es booleana)' controla el proceso de depuración de la matriz
SckServer (índice). "Cerrar" cierra incorrectamente el
conector final
.