Foros - Stratos

Programadores => Programación en red => Mensaje iniciado por: zukutrule en 11 de Agosto de 2004, 11:33:43 PM

Título: Winsock Asinkroniko Pregunta!
Publicado por: zukutrule en 11 de Agosto de 2004, 11:33:43 PM
 hola, mi pregunta es la siguiente....
yo ise un server y un kliente asinkroniko. aho
theClient = accept(listeningSocket,
                 NULL,                   // Address of a sockaddr structure (see explanation below)
                             NULL);             ra bien , este acepta varios klientes,
ahora bien , este sock client , se refiere a una sola koneccion?, tengo ke krear una socket para kada koeccion a la kual kiera embiarle datos?, los datos entran por este theClient o por el listeningsocket, o este ultimo solo es para aser el accept?
y la ultima, komo puedo obtener la informacion de un kliente ke se me konecto, llamese la ip, el puerto ke usa.. etc?????????????????????
graciasssssssssssss
Título: Winsock Asinkroniko Pregunta!
Publicado por: ethernet en 12 de Agosto de 2004, 07:09:16 AM
 dos consejos:

- busca la guia de beej de programacion de sockets en google
- busca un buen profesor de castellano
Título: Winsock Asinkroniko Pregunta!
Publicado por: gdl en 12 de Agosto de 2004, 10:39:06 AM
 
Estas intentando usar un socket para servidor, con el bind(), el listen() y esas cosillas y ahora viene el accept(). Momento terrible.

En un primer momento, sólo tenemos un socket, el del bind() y el listen(). Vamos a llamar ese socket el socket del servidor: Ss.

Luego viene un cliente A y abre un socket en su máquina y lo conecta a nuestro socket Ss. Para poder aceptarlo hay que llamar (¡sí, lo averiguaste!) a accept(), que te devuelve otro socket. Vamos a llamar a este socket el Sa.

Para entablar relaciones con el cliente A, hay que usar el Sa, mientras que el Ss sigue escuchando.

Imagínate que ahora viene un cliente B y se nos conecta a Ss. El accept() devolverá ahora un nuevo socket Sb. En este punto

Para hablar con A uso el Sa
Para hablar con B uso el Sb

Si quiero cortar la comunicación con A, cierro el Sa y tal cual para el B.

Si no quiero que se me conecten más pendejos electrónicos, cierro el Ss (aunque el Sa y el Sb seguirán abiertos si no los cerraste).

Dícholo esto todo, y de memoria, puede que haya algún pequeño detalle que se me escape, pero más o menos es así.

Por cierto, secundo a ethernet:
Citarbusca un buen profesor de castellano