Jump to content

sockets en C


Recommended Posts

hola amigos de chilecomparte, toy tudiando sockets en C y he encontrado super buenos ejemplos pero solo para el paso de mensajes desde el cliente al servidor, asi que empece a programar un juego de batalla naval y termine el cliente y ahora iba a hacer el server pero nose como hacer que un cliente le envie info al server y que este la redirija a un cliente distinto (con otra IP)

 

el codigo de ejemplo que tengo de un servidor es este. en resumidas cuentas lo que quiero saber es como pasar info de un cliente a un servidor y que este servidor redirija esa info a otro cliente. muchas gracias a todos :D

 

  Reveal hidden contents

 

 

Link to comment
Share on other sites

para hacer un servidor, tienes que saber usar Thread y la memoria dinamica( Pilas, Colas , etc.. ).

 

primero crearia una estructura de esta forma.

 

struct batalla

{

int id_1;

int id_2;

 

SOCKET sock_contrincante1;

SOCKET sock_contrincante2;

 

struct batalla* siguiente;

};

 

donde sock_contrincante1; y sock_contrincante2; , son los identificadores de los sockets de los contrincantees( son necesarios para enviarse informasion entre ellos ) , el id es para identificar y facilitar la busqueda de los contrincantes, y la estructura es para generar una lista enlazada, entonces cuando quiero enviar datos desde un cliente a otra pasando por el servidor( el servdor deberia tener los datos de los clientes en la estructura ), el servidor recorre la lista buscando el id del y luego el id del contrincante y envia los datos.

 

esa es mi idea, si tienes alguna otra duda, no dudes en preguntar ;)

suerte!!.

 

 

pd: revisa este link ( http://msdn.microsoft.com/en-us/library/ms...v=vs.85%29.aspx ) , ahi tambien tienes un ejemplo.

 

edit :

 

otra cosa, no es necesario la IP de los clientes, ya que tu te conectas al servidor y al servidor le basta con asociar los socket y luego atraves del ID del socket se envian los datos NO CON LA IP.

Edited by Curso_C
Link to comment
Share on other sites

mmm, amigo, parece que estas usando Linux, si es asi los thread no te serviran ya que linux trabaja con fork(), pero puedes usar tecnicas de IPC como la memoria dinamica segun POSIX

 

IPC: http://es.wikipedia.org/wiki/Comunicaci%C3..._entre_procesos

google: http://www.google.cl/#hl=es&biw=1366&a...aa62f6f249ffcc5

 

suerte ;)

 

PD: Posix tambien funciona en windows usando una libreria

Edited by gemu
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...