• Viernes 15 de Noviembre de 2024, 04:47

Autor Tema:  Un Tema Peliagudo (visual C++ .net)  (Leído 901 veces)

shephiroth

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Un Tema Peliagudo (visual C++ .net)
« en: Lunes 19 de Enero de 2004, 15:25 »
0
Buenas. Estoy con un trabajo personal y me gustarían me orientasen que camino he de tratar para conectar dos programas por medio de sockets. Nunca los he usado y me gustaría me dieran un poco de su tiempo. Librerias necesarias, primeros pasos, algunos ejemplos, paginas donde traten el tema (a poder ser en español), etc...cualquier cosilla por pequeña que sea me será de ayuda


GRACIAS.

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: Un Tema Peliagudo (visual C++ .net)
« Respuesta #1 en: Lunes 19 de Enero de 2004, 16:06 »
0
Cita de: "shephiroth"
Buenas. Estoy con un trabajo personal y me gustarían me orientasen que camino he de tratar para conectar dos programas por medio de sockets. Nunca los he usado y me gustaría me dieran un poco de su tiempo. Librerias necesarias, primeros pasos, algunos ejemplos, paginas donde traten el tema (a poder ser en español), etc...cualquier cosilla por pequeña que sea me será de ayuda


GRACIAS.
Para los sockets, depende de que SO uses, pero basicamente necesitas para windows (calculo que estas en esta plataforma no lo se...) incluir la libreria winsock2.h a tu proyecto o usar algunobjeto de la libreria del ATL o MFC de sockets (que tambien los hay)

Si agregas el winsock2.h tendiras que hacer esto:

Para inicializar los sockets tenes que usar WSAStartup y para cuando la aplicacion termina WSACleanup.
Con eso te aseguras que el socket quede bien habilitado y deshabilitado en windows (solo windows necesita esas PORQUERIAS de funciones :P)

ahora luego tenes las funciones connect, disconnect, close, read, write para manejarte con el socket.

Disconnect se usa para poder hacer un "GRACEFULLY CLOSE" de la conexion.
QUE ES ESTO?
Bueno es cuando vos haces el 3 handshake que necesita el TCP para cerrar los enlaces.
primeramente "Desconectas" TU socket para la transmision, con eso le "indicas" al otro lado que terminaste de enviarle datos, entonces el otro lado hace lo mismo, y luego vos desconectas la "recepcion" de los datos con lo cual queda "desconectado el socket", pero no cerrado, para cerrarlo ahora tendrias que usar close.

Una vez conectado, con read y write podes escribit /leer del socket en cuestion, si vos queres que tu aplicacion sea "asincronica" o sea, que puedas hacer otras cosas mientras que estas esperando la recepcion de los datos vas a tener qeu usar select.
select lo que hace es "avisarte" cuando hay datos disponibles en el buffer del socket para leer.
Con solo hacer una consulta con select podras saber si tenes que leer o no datos,.
Generalmente se pone en el bucle principal del programa en la parte de conexion.

Ahora si te vas a manejar por "transacciones" no hace falta esto, solo envias y esperas la recepcion de datos y luego continuas hasta que tengas que hacer la siguiente transaccion.

Bueno esot es solo una "intro"...
Aca tenes un "tutorial" de como usar los sockets : http://www.buanzo.com.ar/articulos.html

slds
QliX=D! - From the top of Tsunami