Foros - Stratos

Programadores => Programación en red => Mensaje iniciado por: superbalgas en 14 de Febrero de 2011, 09:36:35 PM

Título: mmm datos de mas al recibirlos...
Publicado por: superbalgas en 14 de Febrero de 2011, 09:36:35 PM
Hola, estoy realizando un game 2D, en VB .NET

y we... la onda es hacerlo online...

para hacer esto de la conexiones pensé en utilizar un sistema como el del CHAT...

y... busque en la web algo de sockets y me topé con este código, q de seguro muchos de ustedes lo conocerán xD

http://www.elguille.info/colabora/puntoNET/PabloTilli_SocketsVBNET.htm

bueno... la onda es que el cliente detecte cuando el personaje se mueve y envie las coordenadas del mismo, como si fuera un texto... x ejemplo... 125*500 y el servidor recibe el dato y lo reenvia a los demás clientes...

hasta ahí todo bien con mi idea xD... y la puse a implementar...

pero pasó algo raro q no esperaba xD...

primero, cuando el cliente enviaba rapidamente 2 o más actualizaciones de la coordenada al servidor...

al servidor le llegaba todos los string como si fuera 1 solo... ejemplo... envio 125-125 dsp 126-125 dsp... 127-125 .. y el servidor lo recibe así.... 125-125126-125127-125 lo cual yo dije WTF? xD... si son 2 paquetes diferentes... seguro me lo está metiendo todo en uno solo u.u

y bueno, entonces eso lo solucioné de la siguiente manera... hice q en vez de q mandara 125-125, q mande ... 125-125][ , Sip... con ][ al final... y en el servidor hacia un split y usaba la ultima coordenada... osea la ultima actualización...

y dsp noté q no solo me lo hacia de cliente a servidor... si no tambien de servidor a cliente, por lo q tuve q hacerlo mismo como dividir datos..

peeeeeerooo... eso no fué nada, y ahora descubri q al final de cada string me pone unos caracteres raros q no se q son... puede q sea una especie de salto de linea... pero ni idea, no se como averiguar q me esta enviando ahí xD... meti el string en un msgbox() para saber q caracter me pone al final... y no sale nada xD

asi q... me pudrí y decidi volver a dar unos pasos atras y cortar todo de raiz xD

¿como evito q me meta todo en un paquete al enviar?

(http://img18.imageshack.us/img18/5877/dibujojzr.jpg)

Salu2! :P
Título: Re: mmm datos de mas al recibirlos...
Publicado por: valnar en 15 de Febrero de 2011, 09:26:54 AM
Sería más sencillo si copiases tu código aquí, no entiendo muy bien tu problema (no sé muy bien que quieres decir con dsp, etc, etc...), pero si pones el código seguro que te puedo comentar algo.
Título: Re: mmm datos de mas al recibirlos...
Publicado por: superbalgas en 15 de Febrero de 2011, 05:40:58 PM
este es el codigo base... q puse en el anterior post :P

http://www.elguille.info/colabora/puntoNET/PabloTilli_SocketsVBNET.htm

esa serian 2 dll q una hace de server y otra de cliente...

Título: Re: mmm datos de mas al recibirlos...
Publicado por: valnar en 15 de Febrero de 2011, 06:29:41 PM
Es decir, ¿has copiado y pegado ese código?
Título: Re: mmm datos de mas al recibirlos...
Publicado por: superbalgas en 15 de Febrero de 2011, 06:54:04 PM
sep, eso seria lo q hace la conexión, enviar y recibir datos...

compilé las clases como dll y las importe a mi juego... y llamo las funciones como si fuera un chat

q envia las coordenadas...

pero el problema es el q puse arriba...
Título: Re: mmm datos de mas al recibirlos...
Publicado por: superbalgas en 16 de Febrero de 2011, 03:36:26 AM
dsp= despues
etc = etcétera
Título: Re: mmm datos de mas al recibirlos...
Publicado por: valnar en 16 de Febrero de 2011, 01:05:10 PM
Quizás sería lo lógico poner el código en el que has implementado esas llamadas a los métodos de las librerías.

Pero así, echando un primer vistazo al código del servidor y del cliente, veo que al recibir datos se reciben en un array de 100 bytes (BufferDeLectura = New Byte(100)). No sé si al recibir esos datos muy seguidos, el stream recoge todo lo que hay en el buffer (aunque sea de varios mensajes). Puedes probar a modificar ese valor ajustándolo a lo que tu mandas, o mandar directamente un Byte(100) poniéndole unicamente el texto que quieras (lo cual sería un poco ilógico porque el paquete sería más pesado).

Pero bueno, eso lo he pensado echando un vistazo rápido...quizás alguien más te pueda decir algo...
Título: Re: mmm datos de mas al recibirlos...
Publicado por: superbalgas en 16 de Febrero de 2011, 03:16:10 PM
simple,,,

For I As Integer = 0 To dimencion
               Dim CoorSalida As String
               Try
                   CoorSalida = Coordenadas(I)
               Catch ex As Exception
                   CoorSalida = "0-0"
               End Try
               txtMensaje.AppendText(vbNewLine & "Enviando Coordenada " & CoorSalida & " de ID " & I & " a ID " & UBound(ID_PJ))
               WinSockServer.EnviarDatos(IDTerminal, I & "*" & CoorSalida & "*" & UBound(ID_PJ) & "*NOMBRE][")
           Next
Título: Re: mmm datos de mas al recibirlos...
Publicado por: valnar en 16 de Febrero de 2011, 04:17:22 PM
mmm...¿EnviarDatos2?
Título: Re: mmm datos de mas al recibirlos...
Publicado por: superbalgas en 17 de Febrero de 2011, 03:25:28 AM
sorry sin 2 :P error de tipeo xD
Título: Re: mmm datos de mas al recibirlos...
Publicado por: valnar en 17 de Febrero de 2011, 09:20:17 AM
En cualquier caso, para ver algún problema (si lo hubiera), el tema sería ver el cómo se recogen los datos, no cómo se envían...

¿Has probado a cambiar algo del Byte(100)?.