Re: [GLO] Programacion con sockets TCP
Hola A grandes rasgos, del lado del servidor tienes que 1. crear el socket con la opcion IPPROTO_TCP (para TCP/IP), asociarlo a una interface de red (o ponerle que a todas) con bind() y ponerlo en modo de escucha con listen() 2. Esperar conexiones de clientes con accept() 3. Cuando llega una conexion, el accept te regresa el file descriptor de un nuevo socket que sera el que usaras para comunicarte con el cliente (o error si algo salio mal), entonces ya tienes un canal abierto entre el cliente y el servidor 4. Lanzar un nuevo thread o proceso que se encargue de manejar la comunicacion y peticiones del cliente, sin bloquear el acceso al servidor, de manera que pueda seguir esperando nuevas conexiones mientras se encuentra atendiendo al cliente actual. Una vez que termina con el cliente cerrar la conexion con close() y finalizar el thread Del lado del cliente solo debes 1. Crear el socket con las mismas opciones de tipo y configuracion que en el servidor 2. Conectar al servidor por medio de connect() 3. Hacer todo lo que requieras y al finalicar cerrar con close() Recuerda que las opciones del socket al crearlo (protocolo, familia, etc) son vitales, tambien el byte order (segun tu arquitectura) para armar las direcciones y todo ese rollo. Si vas a estar trabajando con esto de manera cotidiana te recomiendo estudiarle un poco al asunto y preferentemente crear tus propias rutinas genericas para que te sirvan para cualquier programa que hagas sin tener que crear codigo nuevo para cada uno o estar modificando en cada caso especifico. Te recomiendo el libro UNIX PROGRAMACION PRACTICA, de editorial PRENTICE HALL (es uno azul con blanco), ahi viene paso a paso como manejar sockets TCP y UDP, asi como el manejo de threads. Si solo quieres salir del apuro sin complicaciones busca algun tutorial de sockets en google que te muestre un codigo sencillo de ejemplo, o alguna libreria para manejo de sockets, nadamas lo adaptas y se acabo el asunto. Saludos - Original Message From: Jesus Velazquez jjv...@yahoo.com To: Lista GLO glo@glo.org.mx Sent: Fri, January 29, 2010 3:31:56 PM Subject: [GLO] Programacion con sockets TCP ... De acuerdo a toda la doc. de los lenguajes el proceso es simple, Abrir el socket en el puerto , dejar en espera para lectura, y en sequida leer lo que le manda el cliente y escribir al socket (o file descriptor) de nuevo con la respuesta y cerrar la conexión abierta. Si alguien me puede orientar, mucho se los agredeceré. Saludos Encuentra las mejores recetas en Yahoo! Cocina. http://mx.mujer.yahoo.com/cocina/
Re: [GLO] Programacion con sockets TCP
Hola igual y estos ejemplos te pueden servir. http://www.ubicuos.com/2009/07/26/servidor-web-sencillo-en-c-bajo-linux/ http://www.ubicuos.com/2009/07/26/cliente-web-navegador-sencillo-en-c-bajo-linux/ El 30 de enero de 2010 09:07, Miguel Cardenas warlock...@yahoo.comescribió: Hola A grandes rasgos, del lado del servidor tienes que 1. crear el socket con la opcion IPPROTO_TCP (para TCP/IP), asociarlo a una interface de red (o ponerle que a todas) con bind() y ponerlo en modo de escucha con listen() 2. Esperar conexiones de clientes con accept() 3. Cuando llega una conexion, el accept te regresa el file descriptor de un nuevo socket que sera el que usaras para comunicarte con el cliente (o error si algo salio mal), entonces ya tienes un canal abierto entre el cliente y el servidor 4. Lanzar un nuevo thread o proceso que se encargue de manejar la comunicacion y peticiones del cliente, sin bloquear el acceso al servidor, de manera que pueda seguir esperando nuevas conexiones mientras se encuentra atendiendo al cliente actual. Una vez que termina con el cliente cerrar la conexion con close() y finalizar el thread Del lado del cliente solo debes 1. Crear el socket con las mismas opciones de tipo y configuracion que en el servidor 2. Conectar al servidor por medio de connect() 3. Hacer todo lo que requieras y al finalicar cerrar con close() Recuerda que las opciones del socket al crearlo (protocolo, familia, etc) son vitales, tambien el byte order (segun tu arquitectura) para armar las direcciones y todo ese rollo. Si vas a estar trabajando con esto de manera cotidiana te recomiendo estudiarle un poco al asunto y preferentemente crear tus propias rutinas genericas para que te sirvan para cualquier programa que hagas sin tener que crear codigo nuevo para cada uno o estar modificando en cada caso especifico. Te recomiendo el libro UNIX PROGRAMACION PRACTICA, de editorial PRENTICE HALL (es uno azul con blanco), ahi viene paso a paso como manejar sockets TCP y UDP, asi como el manejo de threads. Si solo quieres salir del apuro sin complicaciones busca algun tutorial de sockets en google que te muestre un codigo sencillo de ejemplo, o alguna libreria para manejo de sockets, nadamas lo adaptas y se acabo el asunto. Saludos - Original Message From: Jesus Velazquez jjv...@yahoo.com To: Lista GLO glo@glo.org.mx Sent: Fri, January 29, 2010 3:31:56 PM Subject: [GLO] Programacion con sockets TCP ... De acuerdo a toda la doc. de los lenguajes el proceso es simple, Abrir el socket en el puerto , dejar en espera para lectura, y en sequida leer lo que le manda el cliente y escribir al socket (o file descriptor) de nuevo con la respuesta y cerrar la conexión abierta. Si alguien me puede orientar, mucho se los agredeceré. Saludos Encuentra las mejores recetas en Yahoo! Cocina. http://mx.mujer.yahoo.com/cocina/
[GLO] Programacion con sockets TCP
Buen día a todos, Soy nuevo en la lista y me gustaría preguntarles algo acerca de sockets TCP/IP Resulta que tengo una aplicación que se necesita comunicar a traves de TCP/IP con un servidor, y consiste básicamente en el envío de mensajes de parte del cliente, envio de repsuesta del servidor al cliente, ejemplo: El cliente manda REQ_TIME_DATE y el servidor le regresa 20100129152200 (la fecha con MMDDHHMISS) El set de mensajes se compone de STXREQ_TIME_DATEETX (STX = 0x02 o el no. 2 del ASCII y ETX = 0x03 o el 3 en ASCII). La repuesta del servidor debe ser: STX20100129152200ETX El asunto es que ya probe con 3 lenguajes de programacion (PHP, PERL y C) y siempre se queda en que el servidor abre la conexión, y el cliente envía la petición pero ya no se procesa nada. De acuerdo a toda la doc. de los lenguajes el proceso es simple, Abrir el socket en el puerto , dejar en espera para lectura, y en sequida leer lo que le manda el cliente y escribir al socket (o file descriptor) de nuevo con la respuesta y cerrar la conexión abierta. Si alguien me puede orientar, mucho se los agredeceré. Saludos Encuentra las mejores recetas en Yahoo! Cocina. http://mx.mujer.yahoo.com/cocina/
Re: [GLO] Programacion con sockets TCP
Para mi gusto, el lenguaje en el que más fácil se programan los sockets es en TCL. La mayoría del trabajo ya está hecho por ti. ¿Quieres que te mande ejemplos? /luis Luis Miguel Arteaga Mejía - Huntsville, AL, USA http://www.arteaga.com.mx/paginas/contacto - Original Message From: Jesus Velazquez jjv...@yahoo.com To: Lista GLO glo@glo.org.mx Sent: Fri, January 29, 2010 3:31:56 PM Subject: [GLO] Programacion con sockets TCP Buen día a todos, Soy nuevo en la lista y me gustaría preguntarles algo acerca de sockets TCP/IP Resulta que tengo una aplicación que se necesita comunicar a traves de TCP/IP con un servidor, y consiste básicamente en el envío de mensajes de parte del cliente, envio de repsuesta del servidor al cliente, ejemplo: El cliente manda REQ_TIME_DATE y el servidor le regresa 20100129152200 (la fecha con MMDDHHMISS) El set de mensajes se compone de REQ_TIME_DATE (STX = 0x02 o el no. 2 del ASCII y ETX = 0x03 o el 3 en ASCII). La repuesta del servidor debe ser: 20100129152200 El asunto es que ya probe con 3 lenguajes de programacion (PHP, PERL y C) y siempre se queda en que el servidor abre la conexión, y el cliente envía la petición pero ya no se procesa nada. De acuerdo a toda la doc. de los lenguajes el proceso es simple, Abrir el socket en el puerto , dejar en espera para lectura, y en sequida leer lo que le manda el cliente y escribir al socket (o file descriptor) de nuevo con la respuesta y cerrar la conexión abierta. Si alguien me puede orientar, mucho se los agredeceré. Saludos
Re: [GLO] Programacion con sockets TCP
Hola Jesus: Uno de los mejores textos que he encontrado para sockets está en la red y es gratis: Beej's Guide to Network Programming http://beej.us/guide/bgnet/o Los ejemplos están bastante entendibles, el libro esta escrito en una forma muy casual, pero al llegar a los ejemplos, estos estan sencillos y el codigo funciona sin problemas. El libro está escrito tan desenfadadamente sin embargo,. que no dudo que este ``batracio´´ solamente encontró a la editorial Lulu para publicar su libro!,. el mismo,. yo le doy 5 estrellas. saludos, Joel Rodriguez. versamedium.com P.D. Nuestros programas en los servidores http://www.versamedium.com/geoinverse/start.html fueron hechos con ejemplos de este libro en C y somos un web service. Jesus Velazquez wrote: Buen día a todos, Soy nuevo en la lista y me gustaría preguntarles algo acerca de sockets TCP/IP Resulta que tengo una aplicación que se necesita comunicar a traves de TCP/IP con un servidor, y consiste básicamente en el envío de mensajes de parte del cliente, envio de repsuesta del servidor al cliente, ejemplo: El cliente manda REQ_TIME_DATE y el servidor le regresa 20100129152200 (la fecha con MMDDHHMISS) El set de mensajes se compone de STXREQ_TIME_DATEETX (STX = 0x02 o el no. 2 del ASCII y ETX = 0x03 o el 3 en ASCII). La repuesta del servidor debe ser: STX20100129152200ETX El asunto es que ya probe con 3 lenguajes de programacion (PHP, PERL y C) y siempre se queda en que el servidor abre la conexión, y el cliente envía la petición pero ya no se procesa nada. De acuerdo a toda la doc. de los lenguajes el proceso es simple, Abrir el socket en el puerto , dejar en espera para lectura, y en sequida leer lo que le manda el cliente y escribir al socket (o file descriptor) de nuevo con la respuesta y cerrar la conexión abierta. Si alguien me puede orientar, mucho se los agredeceré. Saludos Encuentra las mejores recetas en Yahoo! Cocina. http://mx.mujer.yahoo.com/cocina/