Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: burbu_1 en 10 Junio 2009, 00:36 am



Título: Duda al cerrar el csocketplus
Publicado por: burbu_1 en 10 Junio 2009, 00:36 am
hola,
había hecho un troyano multiconexión usando el control winsock y ahora estoy tratando de usar el módulo csocketplus.
La cuestión es que con el winsock, para detectar cuando un server se desconectaba, usaba en el cliente el
Private Sub winsock_Close(Index As Integer) ,
pero con el csocket plus,
el Private Sub csocket_CloseSck(ByVal Index As Variant),
no me da ninguna respuesta.

No sé si funciona de forma distinta que en el winsock ¿?

Por otra parte, haciendo pruebas he visto que cuando un server se cierra, sí que se detecta con
Private Sub csocket_Error(ByVal Index As Variant, ByVal Number As Integer, Description As String, ByVal sCode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)

dándome un error con nº 0
¿es ésta la forma de detectar que un server ha cerrado la conexión? o se trata de un error genérico?

Muchas gracias de antemano


Título: Re: Duda al cerrar el csocketplus
Publicado por: mariana_87 en 10 Junio 2009, 17:54 pm
podrias usar para saber si esta conectado o no

socket1.state


Título: Re: Duda al cerrar el csocketplus
Publicado por: burbu_1 en 10 Junio 2009, 19:58 pm
hola mariana, y gracias por contestar

ya he intentado eso de intentar controlar el estado con un timer y en caso de que state<>cskconnected que lo quite de la lista de servers conectados,
pero creo que al haberse desconectado el csocket del server, el index del array de csockets del cliente, se descarga, como si hiciese csocket.arrayremove(n) (por lo que me ha parecido entender en las instrucciones del módulo), y me da un error de que
no existe ese index.

de momento con el evento (si es que se dice evento :D) error , cada vez que un server se desconecta me da un error con number=0, pero no sé si ese error se produce solo así, o se puede producir por cualquier otra cosa. He intentado buscar en código del csocket de dónde viene ese error=0, pero me viene demasiado grande  >:(