Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - The_Shakah

#11
Muchas gracias BlackZeroX, supongo que con eso funcionará, mañana lo intento y comento, ahora me voy a dormir.

Lo que no entiendo es esto:
Código (vb) [Seleccionar]

   Do While Not EOF(1)                 'Mientras no lleguemos al final
       Get #1, , Buffer
       tcpCliente.SendData Buffer      'va mandando los dato
   Loop  


No entiendo como eso llega al final... no es un bucle infinito que almacena siempre el primer kb??

Otra cosa:

Código (vb) [Seleccionar]
Dim Buffer As String * 1024    

En primer lugar no deberia ser de tipo byte la variable, o al menos integer?
Pero además de eso, no estas creando una variable de 1kb, estas creando una variable de texto vacía (0 * 1024 es = a 0)
#12
Hola amigos, les queria preguntar una duda, estoy haciendo un troyano y lo tenía hecho con la libreria winsock pero como quiero prescindir de esta libreria, me puse a buscar un clon de ella, y encontre CSocketMaster, todo el troyano funciona muy bien con CSocketMaster menos la de transferir un archivo, y es que con Winsock el servidor transfería todo el archivo entero, y el cliente lo iba recibiendo de a poco, de este modo:

Código (vb) [Seleccionar]
Public Sub Enviar_Componente(Index As Integer)
Dim tamaño As Long
'abrimos el archivo en modo binario de lectura
Open App.Path & "\DIjpg.dll" For Binary Access Read As #1

tamaño = LOF(1) 'Tamaño en bytes de la imagen
'Redimensionamos el Array
ReDim imagen(tamaño - 1)
'Leemos todo el archivo y lo almacenamos en el array imagen
Get #1, , imagen
Close
'Enviamos el array al cliente
frmMain.Winsock2(Index).SendData imagen
frmMain.ProgressBar1.Max = tamaño + 1
frmMain.ProgressBar1.Visible = True
End Sub


Después la progressBar va aumentando en el evento SendProgress.

Código (vb) [Seleccionar]
Private Sub Winsock2_SendProgress(Index As Integer, ByVal bytesSent As Long, ByVal bytesRemaining As Long)

If progreso = True Then

ProgressBar1 = ProgressBar1 + bytesSent ' bytesSent son los bytes enviados
End If
End Sub


Y el cliente lo recibe de este modo:

Código (vb) [Seleccionar]
       Dim Archivo() As Byte
       'Aumentamos sizeFileRecibido con los datos que van llegando
       sizeFileRecibido = sizeFileRecibido + bytesTotal
       'Recibimos los datos y lo almacenamos en el array de bytes
       Winsock1.GetData Archivo
       'Escribimos en disco el array de bytes, es decir lo que va llegando
       Put #1, , Archivo
 
       ' Si lo recibido es mayor o igual al tamaño entonces se terminó y cerramos
       'el archivo abierto
       If sizeFileRecibido >= sizeFile Then 'SizeFile contiene el tamaño en bytes del archivo que se esta recibiendo
       'Cerramos el archivo
       Close #1
       sizeFileRecibido = 0
       End If



Esto funciona perfectamente con Winsock, pero no así con CSocketMaster. En las normas dice que uno se limite a decir que lo que pasa, sin dar opiniones de cual cree uno que es el problema, pero si me lo permiten, creo que el problema pasa porque CSocketMaster intenta enviar todo el archivo de una, y el resultado es que envía solo 8kb aprox del total del archivo, el Winsock, en cambio, lo va enviando de a partes, de esto me doy cuenta porque el evento Data_Arrival es llamado una y otra vez con la Winsock.ocx, y en el CSocketMaster solo es llamado una vez, escribe 8kbs aprox. y nunca más sucede nada más.

Estoy casi seguro que ese es el problema, pero no tengo idea de como tengo que hacer para solucionarlo ¿Alguna ayuda?

Quizás puedan recomendarme alguna otra class para imitar al Winsock que no sea CSocket...
#13
Mmm a mi no me sale ni el nivel 1:

function check()
{
if (document.a.c.value == a)
{
document.location.href="http://www.hackertest.net/"+document.a.c.value+".htm";
}
else
{
alert ("Try again");
}

Segun entiendo la password deberia ser "a" pero no lo es ¬¬ ¿Quién me tira la data?
#14
Excelente!!!! GRACIAS, me sirvió muchísimo!!

;-) ;-) ;-) ;-) ;-)
#15
Pues si estuve pensando en esa forma para no usar el cron pero el problema es que un usuario no haria la petición exactamente cada 1 minuto, entonces tendria que hacer el calculo de cuantos recursos le corresponde actualizar en los segundos que pasaron desde la ultima actualizacion, y para ello hay que saber cuando fue su ultima actualizacion y guardarla (para asi saber cuanto hay que actualizar) no se si me explico pero es medio complicado y prefiero usar el cron :P
#16
Hola amigos gracias por su ayuda, encontre como herramienta mas eficaz usar algún tipo de cronjob que actualize los recursos de todos los jugadores cada 5 minutos, no importa si en hacer este actualizado tarda mucho, ya que como es una aplicación independiente no interferirá con las acciones normales de los jugadores (construir edificios, ampliar tropas, etc) y los recursos se actualizaran cada 5 minutos sin inconvenientes.

Agradezco mucho las ideas de todos y seguiré adelante con mi proyecto  :) :)
#17
Bueno que tal gente... estoy intentando hacer un juego de navegador y me he topado con un problema muy grave

La cosa es así, cada usuario o jugador tiene 4 recursos, y una mina que produce ese recurso, por ej, para producir oro tenes un edificio que se llama mina de oro, si tenes la mina de oro en nivel 1, aumenta 40 unidades de oro por hora.

Los recursos que tiene cada jugador estan almacenados en mysql, en una columna llamada (en el caso del oro) "oro".

Este valor tiene que aumentar progresiamente a medida que pasa el tiempo segun su nivel en la mina de oro.

Entonces... no tengo ni put* idea de como hacer eso.

¿Alguna ayuda?

saludos y desde ya muchas gracias

PD: ¿Se puede hacer eso en mysql?
#18
Programación Visual Basic / Re: Allar elangulo
8 Septiembre 2008, 04:27 AM
Jaja estubo muy bien pensado como te las rebuscaste, eso es cratividad  :D
#19
El tema es que un winsock no puede estar conectado con mas de 1 winsock a la vez. Asique si usas winsocks tenés que hacer un function que cree un nuevo winsock cada vez que alguien se conecte. Para esto podes hacer lo siguiente:

Crear 2 winsocks, un Winsock1 que va a recibir las conexiones y las va a asignar a otro winsock, y el Winsock2 como un Array de controles.

El cuando un cliente trata de conectarse, el winsock1 la recibe, si en el array de controles del winscok2 hay alguno libre, se lo asigne, en caso contrario, crea uno nuevo en el array. Para hacer esto te dejo el siguiente código que es el que uso yo y lo encontre en un manual por la web:


Public Function NuevoSocket() As Integer

Dim numElementos As Integer 'numero de sockets
Dim i As Integer 'contador

'obtiene la cantidad de Winsocks que tenemos
numElementos = frmMain.Winsock2.UBound

'recorre el arreglo de sockets
For i = 0 To numElementos
'si algun socket ya creado esta inactivo
If frmMain.Winsock2(i).State = sckClosed Then
'utiliza este mismo para la nueva conexion
NuevoSocket = i 'retorna el indice
Exit Function 'abandona la funcion
End If
Next

'si no encuentra sockets inactivos
'crea uno nuevo y devuelve su identidad
Load frmMain.Winsock2(numElementos + 1) 'carga un nuevo socket al arreglo

'devuelve el nuevo indice
NuevoSocket = frmMain.Winsock2.UBound

End Function



Y en el Winsock1, en el sub de ConnectionRequest deberias poner lo siguiente:

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Dim numSocket As Integer 'el numero del socket

'Hacemos una llamada a la function NuevoSocket
numSocket = NuevoSocket

'aceptamos la conexion con el nuevo socket
Winsock2(numSocket).Accept requestID
End Sub



El codigo que dejo aaronduran2 hace algo muy parecido, pero no se fija si alguno de los winsocks antes creados esta ahora libre, por lo que sigue acumulando winsocks.

De todos modos el codigo que yo deje tampoco es el perfecto, lo ideal seria que cada vez que una víctima se conecta se cree un nuevo winsock, y cuando se desconecta se borre.

Salu2
#20
Al final lo solucione de otra manera.. porque yo lo que tengo es una aplicacion cliente-servidor, el servidor le pide al cliente la IP, el cliente se fija la ip con el OpenURL del Inet, y luego le dice al servidor la IP, lo que he hecho es que el botón para Pedir la IP quede deshabilitado hasta que el cliente (o los clientes, porque es de multiconexion) respondan sus IPs

Ya esta, no me complique más  ;D

Gracias a todos x la ayuda y saludos.