• Miércoles 20 de Noviembre de 2024, 18:47

Autor Tema:  Servidor Finger  (Leído 1708 veces)

emir21

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Servidor Finger
« en: Viernes 11 de Junio de 2004, 18:01 »
0
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://..... 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:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Servidor Finger
« Respuesta #1 en: Jueves 17 de Junio de 2004, 03:16 »
0
ya averiguaste la especificacion del protocolo?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Servidor Finger
« Respuesta #2 en: Jueves 17 de Junio de 2004, 10:00 »
0
Como bien dice JuanK es fundamental que sepas el protocolo FINGER, lo podes encontrar acá: http://www.faqs.org/rfcs/rfc742.html y acá 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 podes encontrar mucha ayuda al respecto.

 :ph34r:  :comp:  :hola:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.