Duda con evio de paquetes

Estado
Cerrado para nuevas respuestas.

Dr. GoDKeR

El Rey y el As
Miembro del equipo
Administrador
Developer
Moderador de RRPP
Moderador de AO
Moderador de Tecnología
Moderador de Entretenimiento
Moderador de Diseño
Especialista de RRPP
Especialista de Entretenimiento
Especialista de Tecnología
Especialista de Argentum
Especialista de Diseño
bueno el tema q qiero saber como mandar un paquete del cliente al servidor para hacer algunas cosas en el server

Código:
Val(ReadField(1, Rdata, 44)), Val(ReadField(2, Rdata, 44)), Val(ReadField(3, Rdata, 44)), 0, Val(ReadField(4, Rdata, 44))
para q sirve esto??

edit: les pongo bien como lo tengo para q no halla tanto lio al explicarme

tengo este case

Código:
        Case "PC" 'Hechi a char
            Rdata = Right$(Rdata, Len(Rdata) - 2)
            Parti_Viajar charlist(charindex).Pos.x, charlist(charindex).Pos.y, Val(ReadField(3, Rdata, 44)), 0, Val(ReadField(4, Rdata, 44))
        Exit Sub
en parti_vijar es (x inicio, y inicio, x fin, y fin)

y en el servidor le ago la llamada en por ej UsuarioAtacaNpc
 

MaxTus

Maty Rlz
Hace rato que no programo en VB6, por lo tanto, no se si está bien...

La función VAL() = Devuelve el valor numérico de la cadena

Readfield () = Separa la cadena en un array tomando como base otra cadena, por ejemplo, "@"

Rdata = Creo que es la variable que almacena la cadena sin la preposición del nombre del paquete
 

0xDEADBEEF

Vicinity of obscenity
Ex-Staff
De la data que le ha llegado, que es un string (Rdata), obtiene la información separada por el char 44, es decir:

Código:
Rdata = hola,este,podria,ser,un,rdata,cualquiera
 
ReadField(1, Rdata, 44) ' esto devolverá "hola"
ReadField(2, Rdata, 44) ' esto devolverá "este"
...
Así funciona el protocolo de 11.5, es bastante simple.
 

Dr. GoDKeR

El Rey y el As
Miembro del equipo
Administrador
Developer
Moderador de RRPP
Moderador de AO
Moderador de Tecnología
Moderador de Entretenimiento
Moderador de Diseño
Especialista de RRPP
Especialista de Entretenimiento
Especialista de Tecnología
Especialista de Argentum
Especialista de Diseño
ahi ise un edit, por q no se como ponerle en el servidor
 

0xDEADBEEF

Vicinity of obscenity
Ex-Staff
MaxTus dijo:
Hace rato que no programo en VB6, por lo tanto, no se si está bien...

La función VAL() = Convierte la cadena a Mayúscula

Readfield () = Separa la cadena en un array tomando como base otra cadena, por ejemplo, "@"

Rdata = Creo que es la variable que almacena la cadena sin la preposición del nombre del paquete
Todo excepto el Val, Ucase es lo que pasa todo a mayuscula, val devuelve un valor numérico, dependiendo de lo que le pases, puedes usar string, o float, no importa, el string lo pasa a numero y el float lo corta.
 

MaxTus

Maty Rlz
•Parra dijo:
MaxTus dijo:
Hace rato que no programo en VB6, por lo tanto, no se si está bien...

La función VAL() = Convierte la cadena a Mayúscula

Readfield () = Separa la cadena en un array tomando como base otra cadena, por ejemplo, "@"

Rdata = Creo que es la variable que almacena la cadena sin la preposición del nombre del paquete
Todo excepto el Val, Ucase es lo que pasa todo a mayuscula, val devuelve un valor numérico, dependiendo de lo que le pases, puedes usar string, o float, no importa, el string lo pasa a numero y el float lo corta.
Si, tenés razón, ahí edito para que no se confundan :)
 

Dr. GoDKeR

El Rey y el As
Miembro del equipo
Administrador
Developer
Moderador de RRPP
Moderador de AO
Moderador de Tecnología
Moderador de Entretenimiento
Moderador de Diseño
Especialista de RRPP
Especialista de Entretenimiento
Especialista de Tecnología
Especialista de Argentum
Especialista de Diseño
lo unico q no entendi es por ej, como hacer q en el servidor le de a ese Val(ReadField(3, Rdata, 44)), 0, Val(ReadField(4, Rdata, 44))
 

Franeg95

CARP
Ex-Staff
Desde el cliente mandas :

PAQUETE1&3&6&555

En el servidor llega:

PAQUETE1&3&6&555

Una vez que se identifico el paquete el rData queda:

1&3&6&555

Y luego haces un val(readfield(1,rdata,asc("&")))

Esto lo que hace es agarrar la primera posicion hasta el identificador &

Entonces devuelve:

"1"

Pero como es string no podes operar matemáticamente, por lo que lo convertís en numero con la función val.
 

MaxTus

Maty Rlz
El manejo de los paquetes es algo así...

1. El cliente manda un paquete, por ejemplo, "[email protected]

2. El socket detecta el paquete, y dependiendo de si es o no un comando (creo que era así xD), lo envía a un sub determinado.

3. En ese sub (que no me acuerdo el nombre xD), hay un SELECT gigante que, a partir del nombre del paquete, lleva a cabo un determinado procedimiento...

Acá entra en juego lo que preguntas... (tomamos como ejemplo "[email protected]")

a. En ese select, se separa los primero 5 caracteres de la cadena ("ENTRAR"), para poder así, saber con que paquete se está trabajando.

b. Una vez que se sitúa en el CASE de mencionado paquete, vuelve a obtener la cadena "[email protected]", y, tomando en cuenta el string que se encuentra luego del quinto carácter ("[email protected]"), se separa la cadena en un array tomando como base la letra "@".
Entonces, nos quedan dos cadenas, "matias" y "asd123", que se utilizan como parámetros de diferentes funciones ("Loguear ("matias", "asd123")


Lo expliqué muy por encima, pero creo que se entiende :lol:
 
Estado
Cerrado para nuevas respuestas.
Arriba