Re: [GLO] Programacion con sockets TCP

2010-01-30 Por tema Miguel Cardenas
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

2010-01-30 Por tema Daniel Doctor
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

2010-01-29 Por tema Jesus Velazquez
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

2010-01-29 Por tema Luis Miguel Arteaga Mejía
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

2010-01-29 Por tema Joel Rodriguez

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/