Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Krnl64 en 24 Abril 2006, 18:21 pm



Título: Problema al mantener conexiones Winsock
Publicado por: Krnl64 en 24 Abril 2006, 18:21 pm
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

Código:
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


Código:
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


Título: Re: Problema al mantener conexiones Winsock
Publicado por: Xephiro en 25 Abril 2006, 01:04 am
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 ...

Código:
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


Título: Re: Problema al mantener conexiones Winsock
Publicado por: Krnl64 en 25 Abril 2006, 02:14 am
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


Título: Re: Problema al mantener conexiones Winsock
Publicado por: Gangrel en 25 Abril 2006, 08:15 am
ha simple vista creo que el problema es que en el evento: tcpServer_ConnectionRequest tienes un:

Código:
   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?


Título: Re: Problema al mantener conexiones Winsock
Publicado por: Krnl64 en 25 Abril 2006, 14:36 pm
Vamos a ver.

Creo que no se entiende el error que me da.

El error me lo da con este code:

Código:

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