Serwer memcached. Klient prosi o cos serwer, serwer oddaje z cache jak ma, jesli nie ma zapisuje i oddaje.
- Klient łączy się z serwerem i wysyła nazwe pliku który chciałby pobrać
- Serwer odpowiada za pomocą 1B który mowi czy plik znajduje się na serwerze czy nie:
- MC_ACCEPT (0xFF) jeśli plik znajduje się na serwerze
- MC_FAILURE (0x00) jeśli plik nie znajduje się na serwerze
- Jeśli serwer posiada plik, wysyła wtedy rozmiar pliku (
unsigned long
) - Wysyła plik a potem zamyka połączenie z socketem
- Jeśli serwer nie posiada pliku, zamyka wtedy połączenie z socketem
- main.c - główny plik w którym odbywa się odbieranie połączenia z klientami oraz tworzenie wątków dla każdego klientami
- cache.c - plik który odpowiada za zarządzanie cachem
- client.c - plik odpowiadający za obłsuge połączenia z klientem
- files.c - plik odpowiadający za operacje na plikach, czytanie, usuwanie pliku
Żeby zbudować:
make all
Żeby uruchomić:
./memcached [port] [udostępniany folder] [rozmiar cache w bajtach]
Przykład (rozmiar cache 200MB):
./memcached 1234 /var/memcached 20971520
Żeby uruchomić serwer na 0.0.0.0:1234
który udostępnia pliki z katalogu tmp/
o rozmiarze cache 100MB
:
make run