elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 2 3 4 [5] 6
41  Programación / Bases de Datos / Re: Agregar registro a sql server en: 7 Septiembre 2009, 16:12 pm
Prueba con :
Código:
SELECT TOP(1) id FROM NOMBRE_TABLA ORDER BY ID ASC
Esto te deberia ordenar la tabla según la ID, y cojerte el ID mas alto que estará en la primera fila, si no , solo cambia ASC por DESC y listo.

Saludos
42  Programación / Programación Visual Basic / Re: por que mi programa no responde momentaneamente?? en: 1 Septiembre 2009, 16:01 pm
Lo que deberias hacer mejor es crear un hilo que gestione la subida de archivos, asi puedes seguir usando el programa sin tener que preocuparte de la subida.
43  Programación / Programación Visual Basic / Re: Multiconexion para dioxis en: 14 Agosto 2009, 16:49 pm
Buenas, hace tiempo E0n posteó un source de como empezar a hacer un troyano en VB y c++, la parte del Cliente VB es multiconexión, quiza te sirva para echarle un ojo y ver como va el tema.

Código:
http://foro.elhacker.net/analisis_y_diseno_de_malware/querias_tutos_de_programacion_de_malware_pues_toma-t196251.0.html

Ahi viene el link y el source, espero que te sirva.
44  Programación / .NET (C#, VB.NET, ASP) / Re: Pasar datos de un formulario a otro C# en: 10 Agosto 2009, 18:48 pm
Mmm el Formulario Añadir descarga lo haces nuevo al pulsar algún botón en el Form1? De ser asi , podrias hacer un constructor nuevo para el formulario AñadirDescarga, y pasarle como parametro el formulario Form1 , asi tendrias un acceso al Form1 y no tendrias problemas para acceder a el.

45  Programación / .NET (C#, VB.NET, ASP) / Re: Estructura Perruna - ¿Donde falla? en: 8 Agosto 2009, 15:41 pm
Buenas !! Tras unos dias de inactividad vuelvo a la carga :D, conseguí resolver el problema, al final resulta que era que en la Funcion de LeerSocket, solo obtiene los datos del cliente antes de entrar al while, con lo cual siempre que actualices el cliente, la parte de leersocket nunca estará actualizada con los datos nuevos, y devuelve siempre los viejos.

Bueno ahora me queda de resolver un pequeño problema, en el form principal tengo un botón que te abre otro form de datos y acciones que puedes realizar, el caso es que al darle al botón creo el nuevo form( si no está creado ya uno para ese cliente, y se lo añado a la estructura, para que tenga el enlace a su formulario,grabo en la HashTable de clientes el cliente actualizado, pero cuando intento recibir datos y mandarlos al formulario de acciones de ese cliente, el puntero en la estructura aparece = Nothing !!! No se guarda!!

Aqui el código:

Código:
 Dim InfoCliente As InfoDeUnCliente
        Try
            If Clientes.Count = 0 Then
                Exit Sub
            End If
            Dim IDT As Net.IPEndPoint
            IDT = ObtenerValorCelda("IDTerminal")'Funcion que obtiene el Identificador del cliente
            InfoCliente = Clientes(IDT) 'Saco el cliente
            If InfoCliente.Manager Is Nothing OrElse InfoCliente.Manager.IsDisposed Then
                InfoCliente.Manager = New ClientManager(IDT, Me)
                InfoCliente.Manager.Tag = IDT.ToString
                Clientes(IDT) = InfoCliente' Una vez creado el form, lo guardo actualizado.
            End If
            InfoCliente.Manager.Show()
            InfoCliente.Manager.Activate()

        Catch ex As Exception
            SetLog("Excepcion en Llamada AbrirCliente: " & ex.Source & " " & ex.Message, frmLog)
        End Try

Hasta aqui se supone que todo va perfecto, mirando la depuración, el cliente tiene un puntero al form correcto.

Pero si recibo datos que van destinados a ese form....

Código:
 Try
            InfoClienteActual = Clientes(IDTerminal) 'Aqui al sacar el cliente, despues de haber creado el manager en el paso anterior,
                                                                  'devuelve Manager = Nothing x_X
            For Each f As Object In InfoClienteActual.Manager.MdiChildren ' Aqui salta el error diciendo que el objeto Manager es nulo
                    If (f.Tag = IDTerminal.ToString & "#rs") Then
                        f.GetInfo(datos)
                    End If
            Next

Catch ex As Exception
            SetLog("Excepcion en el Evento DatosRecibidos: " & ex.Source & " " & ex.Message, frmLog)
End Try

A ver si consigo dejarlo depurado que ya tengo ganitas de seguir avanzando...

Saludos !
46  Programación / .NET (C#, VB.NET, ASP) / Re: Estructura Perruna - ¿Donde falla? en: 1 Agosto 2009, 17:12 pm
Vale he quidado los SynckLock, y parece que ahora la estructura no se pierde, pero no actualiza los datos que le llegan, es decir es como si siempre se quedara con los datos almacenados del primer comando y no renueva lo que tiene en UltimosDatosRecibidos con la nueva información que se envia.

Supongamos, que desde un cliente envian una "a", cuando no hay datos si que mete en UltimosDatosRecibidos la "a", pero si posteriormente ese cliente envia como datos "b", sigue mostrando "a", y no renueva UltimosDatosRecibidos = "b".

Y cuando consigo que los UltimosDatosRecibidos sean = "b", es cuando pierdo el resto de datos de ese cliente que tengo en la estructura  :-(
47  Programación / .NET (C#, VB.NET, ASP) / Re: Estructura Perruna - ¿Donde falla? en: 1 Agosto 2009, 16:16 pm
Bueno bueno...ya tengo localizado donde llega el problema, pero sigo dandole vueltas...os dejo el code para que veais...

En esta función es en la que espero las conexiones de clientes, que una vez conectados les asigno un hilo para cada uno para que la siguiente funcion , LeerSocket() se encargue de ir leyendo cada cliente.Lo de lecturas de clientes no tiene problema, no confunde Ids ni nada, es decir lee correctamente del socket que le corresponde, pero por lo que parece cuando el socket deja de recibir el comando con la info de los datos del cliente para recibir cualquier otro comando, es cuando pierdo los datos...
Código:
 Private Sub EsperarCliente()
        On Error Resume Next
        Dim InfoClienteActual As InfoDeUnCliente
        InfoClienteActual = Nothing
        With InfoClienteActual
            While True
                .Socket = tcpLsn.AcceptSocket() 'Se queda esperando la conexion de un cliente
                IDClienteActual = .Socket.RemoteEndPoint
                .Thread = New Thread(AddressOf LeerSocket)
                .Ip = IDClienteActual.Address.ToString
                SyncLock Me
                    Clientes.Add(IDClienteActual, InfoClienteActual)
                End SyncLock
                RaiseEvent NuevaConexion(IDClienteActual)
                .Thread.Start()
            End While
        End With
    End Sub

Con esta función proceso el lo que llega por el socket del cliente...
Código:
 Private Sub LeerSocket()
        Dim IDReal As Net.IPEndPoint 'ID del cliente que se va a escuchar
        Dim Recibir() As Byte 'Array utilizado para recibir los datos que llegan
        Dim InfoClienteActual As InfoDeUnCliente 'Informacion del cliente que se va escuchar
        Dim Ret As Integer = 0
        IDReal = IDClienteActual
        InfoClienteActual = Clientes(IDReal)
        With InfoClienteActual
            While True
                If .Socket.Connected Then
                    Recibir = New Byte(1024) {}
                    Try
                        Ret = .Socket.Receive(Recibir, Recibir.Length, SocketFlags.None)
                        If Ret > 0 Then
                            .UltimosDatosRecibidos = Encoding.ASCII.GetString(Recibir)
                            SyncLock Me
                                Clientes(IDReal) = InfoClienteActual ' Aqui actualizo los datos nuevos que llegan del cliente...
                            End SyncLock                                   'pero solo deberia afectar al campo de Ultimos datos recibidos y no al resto..                       
                            TotalDatos(Ret, lbDatosReci)
                            RaiseEvent DatosRecibidos(IDReal)
                        Else
                            RaiseEvent ConexionTerminada(IDReal)
                            Exit While
                        End If
                    Catch e As Exception
                        If Not .Socket.Connected Then
                            RaiseEvent ConexionTerminada(IDReal)
                            Exit While
                        End If
                    End Try
                End If
            End While
            Call CerrarThread(IDReal)
        End With
    End Sub

El ajo se está cociendo en la Función de LeerSocket, estoy convencido, pero soy incapaz de ver lo que está pasando, creo que de tanto mirarlo ya no lo veo y seguro que es un error tonto...
48  Programación / .NET (C#, VB.NET, ASP) / Re: Estructura Perruna - ¿Donde falla? en: 1 Agosto 2009, 03:40 am
En teoria si, pero no deberia afectar a la hora de perder datos, lo que hago es :

Busco el cliente que le corresponde, actualizo sus datos, pero en ningun momento borro los que ya tiene existentes, y por último actualizo el cliente machacando lo que habia en ese hueco de la HashTable y metiendo la estructura actualizada.La primera vez recupera correctamente los datos, pero la segunda y sucesivas no, puede ser que no esté sobreescribiendo el mismo index de la Hashtable y haya 2 pero recupere el incorrecto?
49  Programación / .NET (C#, VB.NET, ASP) / Re: Estructura Perruna - ¿Donde falla? en: 31 Julio 2009, 19:19 pm
El lenguaje que estoy usando es VB.Net, dejo un par de trozos donde relleno la estructura por primera vez, y donde la completo posteriormente, asi como un trozo donde la uso para obtener la información.

Esta es la estructura.
Código:
        Public Structure InfoCliente
        Public Socket As Socket 'Socket por cada cliente
        Public Thread As Thread 'Thread utilizado para el cliente
        Public DatosRecibidos As String 'Datos que el cliente nos envia
        Public Ip As String 'La dirección del cliente
        Public Nombre As String ' Nombre
        Public Status As String  'Para conocer si el cliente esta utilizando la aplicación
        Public Manager As ClientManager ' Formulario donde podemos consultar información del cliente.

Luego cuando recibo la conexión de algun cliente hago:

Código:
.Socket = tcpLsn.AcceptSocket() 'Se queda esperando la conexion de un cliente
IDClienteActual = .Socket.RemoteEndPoint
.Thread = New Thread(AddressOf LeerSocket)
SyncLock Me
      Clientes.Add(IDClienteActual, InfoClienteActual) ' Esta es la hashTable donde los almaceno.
End SyncLock
RaiseEvent NuevaConexion(IDClienteActual)
.Thread.Start()

Y luego para renovar la info del cliente:
Código:
 Dim InfoClienteActual As InfoCliente
 Dim IDReal as Net.IpEndPoint
 'Aqui obtengo la ID del cliente
 ' Y renuevo la posicion de la tabla con los datos nuevos
 InfoClienteActual.Nombre = "Pepito"
 Clientes(IDReal) = InfoClienteActual

Pero en algún punto es donde se pierde y borra toda la información que no es del socket ni del thread, incluso si creo un nuevo formulario manager para el cliente, pierde la referia hasta el y devuelve Nothing en todos los campos, menos los dos que dije antes.
50  Programación / .NET (C#, VB.NET, ASP) / Estructura Perruna - ¿Donde falla? en: 31 Julio 2009, 18:58 pm
Muy buenas a todos, hace algún tiempo que empecé a diseñar una aplicación que tiene una pequeña estructura donde guardo información.
Para guardar todas las instancias de la estructura utilizo un HashTable donde agrego cada instancia.
Código:
HashTable(Id,Nombre de la Instancia)

El problema viene que a medida que voy generando instancias de esa estructura y rellenandolas, en principio todo funciona perfectamente, la primera vez que intento recuperar datos de alguna instancia los recupera bien, pero si los intento recuperar una segunda vez por ejemplo, de una instancia que ya he consultado antes, no contiene nada...solo devuelve correctamente el thread que la maneja, pero de las variables que almacenan datos(strings y demas...) no obtiene nada.He revisado el código de arriba a abajo por si en algun momento hago algo que pueda sobreescribir la instancia dentro del HashTable, pero nada.

¿Alguien sabe a que puede deberse? Ya no me quedan mas ideas para probar x_X

Saludos y gracias.
Páginas: 1 2 3 4 [5] 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines