Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo utiliza VB Winsock para la comunicación de uno a muchos

Cómo utiliza VB Winsock para la comunicación de uno a muchos

VB puede crear una matriz de control Winsock y Winsock también puede aceptar múltiples solicitudes de conexión al mismo tiempo usando un control. En lugar de cerrar la conexión, simplemente crea una nueva instancia del control (estableciendo su propiedad de índice) y luego llama al método Accept en la nueva instancia.

Proporciona un cómodo acceso a los servicios de red TCP y UDP. Puede ser utilizado por desarrolladores en Microsoft Access, Visual Basic, Visual C++ o Visual FoxPro. Para escribir aplicaciones de cliente o servidor, no es necesario conocer los detalles de TCP ni llamar a las API de Winsock de bajo nivel. Puede conectarse fácilmente a una máquina remota configurando las propiedades del control y llamando a sus métodos, y también puede intercambiar datos en ambas direcciones.

Ejemplo de código:

El siguiente código supone que hay un control Winsock en el formulario denominado sckServer y su propiedad Index está establecida en 0, por lo tanto, el control es parte del control; formación. En la sección de declaración, se declara una variable a nivel de módulo intMax. En el evento Load del formulario, intMax se establece en 0 y la propiedad LocalPort del primer control de la matriz se establece en 1001. Luego llame al método Listen del control, convirtiéndolo en un control de "escucha". Cuando llega una solicitud de conexión, el código detecta si el índice es 0 (el valor del control de "escucha"). Si es 0, el control de escucha incrementará el valor de intMax y usará ese número para crear una nueva instancia de control. Luego, use la nueva instancia de control para aceptar la solicitud de conexión

Opción explícita

Private intMax As Long

Private Sub Form_Load()

intMax = 0

sckServer(0).LocalPort = 1001

sckServer(0).Listen

End Sub

Sub privado sckServer_ConnectionRequest _

(Índice como entero, ByVal requestID como largo)

Si índice = 0 entonces

intMax = intMax + 1

Cargar sckServer (intMax)

sckServer(intMax).LocalPort = 0

sckServer(intMax).Aceptar requestID

Cargar txtData(intMax)

Finalizar si

Finalizar sub