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
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
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
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?
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