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

#301
Sabes yo necesito lentes para leer lo escrito, me los pongo y me pongo a leer varias publicaciones, vengo a la tuya y vuala magia NO TE PUEDO LEER absolutamente nada, no chingues!¡.

* ¿Que es "iniciar sección"?

Dulces Lunas!¡.
#302
.
* La asociación de IP-Nick lo realizas CON CUENTAS (usuario y contraseña); Las IPS NO GARANTIZAN la asociación con las cuentas.
---> Si ya tienes tu sistema de cuentas la cosa es distinta:
Deberás asociar el requestID con la cuenta o el objeto socket JAMAS asocies la cuenta con una IP... por lo regular en sus sistema de este tipo se realiza una estructura similar a esta:

Código (vb) [Seleccionar]


type usuario
    iduser as integer
    idsocket as integer
end type



o también de esta manera:

Código (vb) [Seleccionar]


type usuario
    iduser as integer
    socket as socket ' winsock, ....
end type



La consulta de esos datos se podría realizar de una manera eficaz usando una estructura AVL (claro esto ya implica programas mas)... opciones mas LENTAS son usando un objeto Colection (es una clase).

http://msdn.microsoft.com/es-es/library/yb7y698k(v=vs.80).aspx (No te asustes léelo y experimenta o NO lograras nada).

Cita de: Brian1511 en 13 Agosto 2012, 01:33 AM
Jajaja Gracias a ti por responder , Si vi el post de DarkMatrix que el iso es muy impresionante el juego que creo realmente me gusto pero no creo que solo lo iso con vb hay ubo algo mass!! tu sabes que quiero hacer algo tan complicado solo algo censillo juegar entre varios jugadores un servidor de Loby Principal .
Esta hecho totalmente en vb6 (Usa DirectX pero realmente no lo usa para nada, creo y puedo afirmar que solo lo usa para ajustar la pantalla), de hecho fue un servidor quien aprovecho sus vulnerabilidades de su protocolo en sus inicios (por ello empaqueto su EXE).

Dulces Lunas!¡.
#303
Si tienes dudas del peso de los tipos de datos en bytes:

http://wiki.elhacker.net/programacion/vb/4---principios-basicos

Dulces Lunas!¡.
#304
.
Mira igual y necesita correcciones..

Código (Vb) [Seleccionar]


Dim array_data() As Integer ' Como trabaja con con Word (16 bit) uso Integer en lugar de byte (8 bit)
...

           While (d < LOF(ff))
               array_data(d) = bSwapBit(array_data(d), 12 - 1, 2 - 1)
               array_data(d) = bSwapBit(array_data(d), 15 - 1, 4 - 1)
               array_data(d) = bSwapBit(array_data(d), 9 - 1, 13 - 1)
               array_data(d) = bSwapBit(array_data(d), 5 - 1, 10 - 1)
               array_data(d) = bSwapBit(array_data(d), 11 - 1, 8 - 1)
               array_data(d) = bSwapBit(array_data(d), 3 - 1, 7 - 1)
               array_data(d) = bSwapBit(array_data(d), 1 - 1, 14 - 1)
               array_data(d) = bSwapBit(array_data(d), 16 - 1, 6 - 1)
               d = (d + 1)
           Wend

...



La función bSwapBit() la encuentras aquí:
Recopilacion de Funciones con operaciones Binarias.

Dulces Lunas!¡.
#305
usa el miembro RemoteHostIP (Creo que así se llama) de tu Winsock para obtener la IP de TODOS tus clientes conectados...

Dulces Luans!¡.
#306
.
Si no me equivoco usar cin  con un array de char es lo mismo que usar gets() con el array char (corrijan-me)... lo mejor seria usar el tipo string si se esta en C++.

Código (cpp) [Seleccionar]


int main(){
  string puerto,
         ip,
         netcat;

  cout << "Introduce la IP: ";
  cin >> ip;
  cout << "Introduce el puerto: ";
  cin >> puerto;
  netcat = "nc " + ip + " " + puerto;
  system(netcat);  
  cin.getch();
  return 0;
}



Dulces Lunas!¡.
#307
Cita de: Dunkansdk en  1 Agosto 2012, 15:30 PM
Bueno si, lo se... Y por lo que djo elemental...
If C And H&8 Then

sería... Si C = 8 -> true?

Como ya te dije mensione CUALQUIER VALOR distinto de 0 es TRUE para un if then solo se necesita un bit prendido independientemente su posicion...

De alguna manera el TRUE es el complemento de 0 y el complemento es una operación booleana, los tipos de datos unsigned y signed (Lenguaje C/C++ unsigned/signed pero de igual manera en vb6 como currency/long respectivamente) según estos modificadores puede tratarse ese 1 como -1 pero en si es el 1 pero con signo, es decir, si tubieramos un INTEGER:

1bit su valor TRUE seria 1 (unsigned) y -1 (signed)
2bit su valor TRUE seria 3 (unsigned), 1(unsigned, signed) y -1(signed)
3bit su valor TRUE seria 7 (unsigned), 3(unsigned, signed) y 1 (unsigned, signed), -3(signed), -2(signed) y -1(signed)

Es decir, da igual la longitud del entero con que solo haya un bit encendido se puede CONSIDERAR TRUE, peeeero el verdadero valor de TRUE SIEMPRE SERA EL COMPLEMENTO DE 0 es decir TODOS LOS BITS EN 1

ES POR ELLO QUE ESTAS AFIRMACIONES SON CORRECTAS!¡.
NOT FALSE es igual a TRUE
NOT TRUE es igual a FALSE

* En una PC solo existen enteros, los flotantes con una estructura de enteros acomodados de una forma algo peculiar.
* El bit con mayor peso (mas a la izquierda) es el que indica el bit de signo (abre la calculadora de windows ponla en modo programador) escribe un numero NEGATIVO por ejemplo -3 y revisa que el bit mas a la izquierda (independientemente del numero que sea) SIEMPRE SERA 1 por ello para comprobar en binario si un valor almacenado en un LONG es negativo se pone

if (long and &h80000000) then <--- la mascara hace referencia a 10000000000000000000000000000000 en binario
...
end if

por ejemplo

-2& <--- con el & espesificamos que el numero es un long es bianrio seria:  11111111111111111111111111111110

haciendo la mascara seria:

11111111111111111111111111111110 (-2)
10000000000000000000000000000000 (-2147483648 es decir &h80000000)
-----------------------------------------------------
10000000000000000000000000000000 <-- resultado (SE CONSIDERA TRUE en el if then)

puedes revisar algunas operaciones con bits aqui: Recopilacion de Funciones con operaciones Binarias.

Dulces Lunas!¡.
#308
Código (vb) [Seleccionar]
If (A And &H20) Then Exit Function
If (C And &H8000) Then Exit Function
If (B And &H8) Then
etc...


En ese caso se le llaman MASCARAS DE BITS es decir Filtra TODOS los bits 1 que concuerden (tal cual el ejemplo de @79137913) con que solo sea un numero distinto de 0 se tratara como un valor TRUE PERO si la mascara no retorna un numero distinto cero, es decir, nos retornara el 0 se toma la expresión como FALSE.

* OJO esto en caso de que estén en sentencias de un if then, while, etc...

Existen otros casos como estos:

E = (A and 5 or 10) xor B

en este tipo de expresión NO IMPORTA DONDE SE UBIQUEN inclusive en los if then se toman como operaciones binarias es decir operaciones con bits (revisa los post de arriba).

Dulces Lunas!¡.
#309
Cita de: apexseal en 10 Agosto 2012, 10:32 AM

Chunk = Text1.Text
Bit1 = 12
Bit2 = 16
bChar = Mid$(Chunk, Bit1, 1)
Mid$(Chunk, Bit1, 1) = Mid$(Chunk, Bit2, 1)
Mid$(Chunk, Bit2, 1) = bChar
Text2.Text = Chunk


Con mid$() NO vas a trabajar con bits de manera directa, necesitas usar las operaciones auxiliares de equivalencia... ya que o trabajas con bits o trabajas con bytes ambos son distintos... y me da la impresion que te refieres a bytes y no a bits...

usando el array de bytes puedes hacer un cambio de bytes muy simple como este (NO ES LO QUE PIDES O ESO CREO... ya que no se te entendió realmente la idea):

Código (vb) [Seleccionar]

'12 al 2
'15 al 4
'9 al 13
'5 al 10
'11al 8
'3 al 7
'1 al 14
'16 al 6
Const sFileName As String = "c:\alcaeda.txt"
Dim ff As Integer
Dim d As Long
Dim array_data() As Byte

   ff = FreeFile()
   Open sFileName For Binary Access Read As ff
       If (LOF(ff) > 0) Then
           ReDim array_data(0 To LOF(ff))
           Get ff, , array_data
           d = 0
           While (d < LOF(ff))
               bSwap array_data(12 + d), array_data(2 + d)
               bSwap array_data(15 + d), array_data(4 + d)
               bSwap array_data(9 + d), array_data(13 + d)
               bSwap array_data(5 + d), array_data(10 + d)
               bSwap array_data(11 + d), array_data(8 + d)
               bSwap array_data(3 + d), array_data(7 + d)
               bSwap array_data(1 + d), array_data(14 + d)
               bSwap array_data(16 + d), array_data(6 + d)
               d = (d + 8)
           Wend
       End If
   Close ff


La función bSwap() la encuentras aquí:
Recopilacion de Funciones con operaciones Binarias.

NOTA: Si vas a PROCESAR un archivo sin importarte que sea o no legible para un ser humano es mejor usar un array de bytes ya que mid$() es para strings y este ultimo tipo esta orientado para otros tipos de datos pero igual se puede ocuper pero en lo personal es menos recomendable...

Dulces Lunas!¡.
#310
También lo puedes dejar de esta manera:

fichaPersona Alumnos[20];
memset(Alumnos, 0, sizeof Alumnos);


sizeof AlumnosEs una abreviación de: sizeof *Alumnos * 20Aun que una equivalencia es usar sizeof(fichaPersona) * 20.

Dulces Lunas!¡.