Visual Basic - Ayuda con Winsock

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda con Winsock

Publicado por Geronimo (20 intervenciones) el 19/06/2004 15:37:31
Tengo una aplicación que funciona como Servidor para varios clientes con protocolo TCP y por cada cliente que se conecta crea un nuevo Winsock para escuchar las solicitudes de conexion siquientes.
El tema es que cuando llega a la siguiente linea:
Servidor(Clientes).Bind "4321", Servidor(index).LocalIP 'Establece el puerto e IP locales para el nuevo Winsocket.
me tira el siguienteerror:
error "10048" direccion en uso.
Es imposible que a cada Winsock que creo le asigne ip o puerto distintos porque no habria forma de preestablecer en cada cliente ip y puerto para conectarse.
Este error solamente ocurre bajo Win98 porque cuando ejecuto la misma aplicación bajo XP todo marcha normalmente.
Si alguien tiene la solución para el problema bajo Win98, le agradeceré la ayuda. El procedimiento entero esta más abajo.
Desde ya muchas gracias.

Private Sub Servidor_ConnectionRequest(index As Integer, ByVal requestID As Long)
Clientes = Clientes + 1 'es el numero de clientes conectados
Load Servidor(Clientes) 'Crea un Winsock y lo agrega a la matriz de controles Winsocks
Servidor(index).Close 'Cierra el Winsock que recibe la peticion de conexion
Servidor(Clientes).Close 'Cierra el nuevo Winsock que se creo
Servidor(Clientes).Bind "4321", Servidor(index).LocalIP 'Establece el puerto e IP locales para el nuevo Winsocket.
Servidor(Clientes).Listen 'Pone a escuchar al nuevo Winsock
Servidor(index).Accept requestID 'Acepta la peticion de conexion que le llegó
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de RAUL
Val: 2
Ha aumentado su posición en 97 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

RE:Ayuda con Winsock

Publicado por RAUL (443 intervenciones) el 19/06/2004 18:09:18
CON QUE S.O. DESAROLLASTE LA APLICACION????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Winsock

Publicado por Daniel Vila (3 intervenciones) el 23/06/2004 18:25:29
Yo tengo un control de usuarios igual, pero no lo hago como tú.

Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
i = i + 1
Load Winsock1(i)
Winsock1(i).LocalPort = 0
Winsock1(i).Accept requestID
end sub

A mi me funciona sin problemas en W98, W2000 i XP. He omitido parte del código que es irrelevante.
El socket que está a la escucha es el de Indice = 0 (Winsock1(0)) i siempre está abierto, no lo cierres.

Saludos
Daniel

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar