SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: emir21 en Viernes 11 de Junio de 2004, 18:01

Título: Servidor Finger
Publicado por: emir21 en Viernes 11 de Junio de 2004, 18:01
hola que tal nesecito con bastante urgencia que me ayuden o me digan los pasos que debo segui pra realizar un servidor finger en lenguaje C, y como utilizar el socket ... tengo plataforma win dows xp..... y tengo que correr el programa desde c://.... (http://c://....). me dan como entrada usuario@..........com osea un email y de hay yo tengo que sacar la info pero como lo hago... demen por lo menos que pasos deberia seguir.  :comp:
Título: Re: Servidor Finger
Publicado por: JuanK en Jueves 17 de Junio de 2004, 03:16
ya averiguaste la especificacion del protocolo?
Título: Re: Servidor Finger
Publicado por: Eternal Idol en Jueves 17 de Junio de 2004, 10:00
Como bien dice JuanK es fundamental que sepas el protocolo FINGER, lo podes encontrar acá: http://www.faqs.org/rfcs/rfc742.html (http://www.faqs.org/rfcs/rfc742.html) y acá http://www.faqs.org/rfcs/rfc1288.html (http://www.faqs.org/rfcs/rfc1288.html)

Sabiendo el protocolo que si no me equivoco (y recuerdo mal) es una simple conexión TCP, lo único que tenes que hacer es definir tu estrategia de recepción de datos y no mucho más.

La recepción de datos se me ocurre por lo menos de 3 maneras:

La peor es bloqueante:

Código: Text
  1.  
  2. DWORD Result = 0;
  3. while(1)
  4. {
  5.   Result = recv(socket,buff,256,0);
  6.   if ( (Result == SOCKET_ERROR) || (!Result) )
  7.   {
  8.     break;
  9.   }
  10.   else
  11.   {
  12.     //procesar los datos
  13.   }
  14. }
  15.  
  16.  

Otra forma es abrir un thread que se dedique a la lectura con CreateThread, esta se me antoja bastante simple y eficiente.

Por último la que considero la mejor opción es usar la función WSAAsyncSelect esta función hace que el S.O. envie los mensajes especificados (FD_READ, FD_WRITE, FD_CONNECT, FD_ACCEPT, FD_CLOSE, ETC) a  la ventana que se pase como parametro logrando tener una conexión perfectamente asincrónica.

En la MSDN, http://msdn.microsoft.com (http://msdn.microsoft.com) podes encontrar mucha ayuda al respecto.

 :ph34r:  :comp:  :hola: