Exam Rank 06
Un solo ejercicio: un servidor TCP en 127.0.0.1 con select. Dos enunciados posibles: el chat en C y la base de datos clave-valor en C++.
Un ejercicio · C o C++
| Ejercicio | Optim | Compañero |
|---|---|---|
| mini_serv | código · paso a paso | código · paso a paso |
| mini_db | código · paso a paso | - |
Chuleta sockets
socket(AF_INET, SOCK_STREAM, 0)= un fd nuevo, IPv4 + TCP. Aún sin dirección.bind= "este fd es 127.0.0.1:puerto".listen= "acepto conexiones". A partir de aquí los errores de sistema ya no sonFatal error.accept= un fd nuevo por cliente. El de escucha sigue igual.htons/htonl= número a orden de red (big endian).2130706433=0x7F000001= 127.0.0.1 =INADDR_LOOPBACK.select(maxfd + 1, &rd, &wr, NULL, NULL)= duerme hasta que algún fd tenga algo que leer o se pueda escribir. Modifica los conjuntos: pásale copias.FD_ZEROvaciar ·FD_SETmeter ·FD_CLRsacar ·FD_ISSETpreguntar.recvdevuelve 0 = el cliente cerró. Puede traer media línea o tres: acumula y corta por\n.- Probar:
nc 127.0.0.1 8080en varias terminales.