Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Juegos Multiplayer

Iniciado por Milinko, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

undol

                                Fijate que en los comentarios ya pone que la conexión está orientada a TCP ... por lo que refiere al bind y al connect fijate que una parte es la del server y la otra la del cliente ... pero creo que algo de razon tienes, pq :

El connect que realiza el cliente tb tiene que habrir un socket para recibir los paquetes del server, y acaba realizando un bind un poco transparente para el programador

Saludos                                
aludos --{Undol}--

AK47

                                Saludos
Jeje, tienes razon, no me habia fijado.
De cualquier modo, usar TCP para juegos de accion es un poco contraproducente, ya que puede ocasionar un retraso en la llegada de los datos enorme. Por algo Quake 2 y estos usan UDP segun me han dicho.

Aio                                

MChiz

                                Si que usan UDP si, pero es mas coñazo de programar :sonriendo: Aunque deberiamos hacerlo... pero no todos los juegos son de accion! :sonriendo: aaaiii, a ver si podemos innovar prontito, que los QuakAs estan muy bonitos, pero ya rallan un poco.
Adios!!

< MChiz >                                

Emotion

                                No obstante, parece ser que la programacion con TCP es algo peligrosa, ya que por ahi dicen que hay un tipo de ataque llamado DoS (Denial of Service) que dicen que te puede echar abajo el server, y por lo que escuche el metodo de la comunicacion por UDP era porque por lo visto no se podia duplicar un usuario y utilizaba un metodo para comprobarlo, pero es todo lo que se al respecto... alguien puede extender un poco mas esto?

Saludos
                               
G3: Get the Power!

Psyc0

                                Hola, estoy programando una aplicación en Visual Basic, y usando el control winsock para hacer un chat p2p.

La idea ke tengo es guardar mi ip en una base de datos que esté en un servidor de internet y así poder acceder desde otro ordenador con el otro cliente y saber a que ip conectarme, osea que seria una aplicación cliente/servidor.

Pero no se como modificar la base de datos de internet, en lan o en local sí puedo con ADO por código por ejemplo.

Si alguien me hecha una mano estaré muy agradecido. Gracias.                                

undol

                                Vale vale TCP tendrá sus "defectillos" pero lo que esta claro es que alguno de ellos son totalmente superables con una buena programación, supongo que ha nadie se le ocurriria llamar a una llamada bloquente en el thread principal, pues eso es lo mismo .. los recv and send son bloqueantes hasta que el recptor no se da por enterado, pero superar esa trivialidad es tan facil como implementar todo el tema de red en un nuevo thread con los "TIME" correspondientes

Saludos
                               
aludos --{Undol}--

Milinko

                                [Respondiendo a Emotion]

Realmente, las opciones de utilizar TCP o UDP no vienen tanto por los ataques que puedas recibir sino por las necesidades de comunicación en cada caso.

Caracteristicas de TCP

- Es un protocolo orientado a conexión
- La entrega de datos (paquetes) es fiable y ordenada.
- Segmentación. Optimiza el tamaño de los paquetes para el envío.
- Tiene control de flujo y de congestión. Es decir, se "autolimita" en caso de alto tráfico en alguna zona.

Caracteristicas UDP

- No es orientado a conexión.
- No se garantiza ni el orden ni la entrega del envío.
- Tiene prioridad sobre TCP.

Por ejemplo, el protocolo HTTP (el que utilizamos tú y yo para escribir en estos foros) está construido sobre TCP. En el caso de los MMORPG, los protocolos de dichos juegos suelen estar construidos sobre UDP ya que:

- Es bastante más rapido que TCP por las carácteristicas mencionadas anteriormente.
- Aunque no está garantizado ni el orden ni la entrega se puede programar una capa para ello y, en cualquier caso, hay eventos dentro del juego que puedes permitirte el "lujo" de no entregarlos (como movimientos de personajes, por ej.).

En cuanto al tema de los ataques, es cierto que pueden existir, pero tambien existen forma de defenderte contra ellos. De hecho, aunque utilices UDP tambien puedes ser víctima de ataques a tu servidor.

Y bueno, ya está que me he enrollado mucho.

Un saludo
Milinko.
                               
-------------------------------------------
Milinko
"The Loneliness Of The Long Distance Runner"
--------------------------------------------

Milinko

                                Undol,

tambien se puede programar sockets TCP "no bloqueantes". En cualquier caso es buena idea utilizar un thread independiente para las operaciones de E/S de sockets.

Un saludo.

Milinko.                                
-------------------------------------------
Milinko
"The Loneliness Of The Long Distance Runner"
--------------------------------------------

Emotion

                                De todas formas, creo que habia en los textos del GDC de este año uno especifico sobre como evitar ataques a servidores con TCP (o al menos hablaba sobre como evitar ciertos ataques). No lo confirmo ya que no lo he leido del todo, pero algo si que viene
                               
G3: Get the Power!

Milinko

                                Eso está disponible en algún sitio, Emotion??

Gracias.

Milinko                                
-------------------------------------------
Milinko
"The Loneliness Of The Long Distance Runner"
--------------------------------------------

Emotion

                                Pues si, es el enlace a los textos del GDC 2002, es decir, el de este año.

De hecho, salio en la misma pagina de Stratos, en la cual he buscado la referencia de la que te hablo, que esta aqui:

http://www.gdconf.com/archives/proceedings.../2002/index.htm

De hecho, el texto exacto es este (menciono el titulo y las pulsaciones de raton las dejo para ti :sonriendo:)

"Defense Against Service Theft, Internet Cheating
and Denial of Service"


[ Este Mensaje fue editado por: Emotion el 2002-05-03 18:27 ]                                
G3: Get the Power!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.