Problema al mantener conexiones Winsock

Iniciado por Krnl64, 24 Abril 2006, 18:21 PM

0 Miembros y 1 Visitante están viendo este tema.

Krnl64

Hola a todos.

Tengo 1 problema al conectar varias aplicaciones con el control winsock.

Resulta que acepta las conexiones, pero al mantenerlas me da error.

La primera conexion la acepta y sabe que esta conectada, pero cuando hay mas de una no se porque no la detecta y es cuando me da el error.

Este es el code


Private Sub tcpServer_ConnectionRequest(index As Integer, ByVal requestID As Long)

   If index = 0 Then

      intmax = intmax + 1

      Load tcpServer(intmax)

      tcpServer(intmax).LocalPort = 666

      tcpServer(intmax).Accept requestID

      List1.AddItem tcpServer(intmax).RemoteHostIP '' añade las ips a 1 listbox

      End If

End Sub




Private Sub Timer1_Timer()

For i = 0 To intmax

If tcpServer(i).State <> 7 And tcpServer(i).State <> 6 Then

Debug.Print tcpServer(i).State

GoTo n

Else
tcpServer(i).Close

tcpServer(i).Listen

End If

n:

Next i

End Sub


Puede echarme alguien 1 mano ?

Gracias

Xephiro

#1
Prueba poniendo esto en vez del primer codigo que pusiste tu ... yo estoy usando este con un chat multi usuarios .. o mejor dicho un proyecto que estoy haciendo .. pero en lo que son conexiones me funciona de lo mejor.. e incluso en el envio de otras cosas ...

Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
   If Index = 0 Then
   On Error Resume Next
      intMax = intMax + 1
      Load sckServer(intMax)
      sckServer(intMax).LocalPort = 1001
      sckServer(intMax).Accept requestID
      Load txtData(intMax)
   End If
End Sub

Krnl64

El problema no es aceptar las conexiones, sino el saber cuales estan activas y cuales no para cerrar sockets innecesarios.

Es ahi donde me da el error

Gracias

Gangrel

ha simple vista creo que el problema es que en el evento: tcpServer_ConnectionRequest tienes un:


   If index = 0 Then


Esto hace que cuando el index del Control Winsock sea mayor que 0 no hacepta la conexion. Solo esta haceptando conexiones del Winsock(0). No se por que tengas ese IF?
La educacion no es un privilegio, es un derecho.

http://www.usuarios.lycos.es/protg

Krnl64

#4
Vamos a ver.

Creo que no se entiende el error que me da.

El error me lo da con este code:



Private Sub Timer1_Timer()

For i = 0 To intmax

If tcpServer(i).State <> 7 And tcpServer(i).State <> 6 Then

Debug.Print tcpServer(i).State

GoTo n

Else
tcpServer(i).Close

tcpServer(i).Listen

End If

n:

Next i

End Sub



Este code es que tengo para saber si esta activa la conexion y si no lo esta que cierre el socket.

Cuando se cierran varias conexiones a la vez peta

Gracias