Sockets en c
Sebasti´n Arancibia, Cristi´n Bravo a a June 20, 2010
1
Introducci´n o
Casi cualquier cosa en la red tiene que ver conprocesos clientes que dialogan con procesos servidores y viceversa. Consideremos telnet, por ejemplo. Cuando conectas al puerto 23 de una m´quina remota mediante telnet (el a cliente) un programa de aquellam´quina (llamado telnetd, el servidor) dea spierta a la vida. Gestiona la conexi´n telnet entrante, te presenta una o pantalla de login, etc. A continuaci´n se expone como se implementa la simulaci´nde un ping o o utilizando sockets en C. Para esto se realiz´ un socket cliente y otro socket o servidor, como se muestra en el esquema a continuaci´n, el cliente envia una o solicitud al servidor y´ste le da una respuesta a esa solicitud. e Client −→ request −→ Server Client ←− response ←− Server
2
Soluci´n o
Para la soluci´n de este problema, se utiliza sockets de flujo, usando un oprotocolo Orientado a la Conexi´n, es decir, existe una conexi´n l´gica entre o o o los procesos. Se eligi´ este protocolo principalmente porque se tiene una o 1
comunicaci´n confiable y libre deerrores, en donde los datos se transfieren o de un extremo al otro conformando un flujo continuo de bytes.
3
Cliente
El cliente recibe como parmetro el nombre del host para poder comunicarse con elservidor. En este caso utilizamos simplemente localhost para que obtenga la IP espec´ ıfica del ordenador. Una vez que sea identificado el servidor, se prosigue con los siguientes pasos: 1. Se crea elsocket del cliente utilizando la funci´n socket(). o 2. Mediante la funcin connect() se solicita la conexi´n al servidor. o 3. El Cliente recibe un mensaje desde el servidor.
4
Servidor
Parala implementaci´n del servidor, inicialemente se especifica inexcluibleo mente el puerto que identificar unicamente al servidor. Posterior a esto se ´ crean las estructuras encargadas de administrar...
Regístrate para leer el documento completo.