Serwer pkd jest wielobieżnym programem nasłuchującym żądań klientów w postaci maski i zdolnym do udzielenia odpowiedzi w postaci ciągu słów pasujących do tejże maski. W masce można stosować dowolne litery oraz znaki specjalne:
Serwer jest wykorzystywany przez program Pomocnik Krzyżówkowicza wersja sieciowa 2.99. Możliwe jest także użycie go do innych celów np. sprawdzania pisowni.
Po nawiązaniu połączenia strumieniowego w dziedzinie Internetu klient wysyła zapytanie w postaci ciągu maski. Ze strony serwera powinna nadejść odpowiedź w postaci kolejnych ciągów zakończonych jednym pustym oznaczającym koniec odpowiedzi. Dalej cykl może się powtórzyć dowolną ilość razy. Na koniec połączenie jest zamykane. Wszystkie ciągi, zarówno po stronie klienta i serwera, są przesyłane w postaci: długość + zawartość. Długość jest liczbą 32-bitową zapisaną w formacie sieciowym oznaczającą ilość znaków ciągu. Zawartość obejmuje kolejne znaki ciągu.
Aktualnie serwer nie pracuje. W przyszłości są możliwe zmiany protokołu dla powiększenia możliwości wyszukiwania do anagramów i słów krzyżujących się, dostępności innych znaków specjalnych oraz obsługi jednoczesnej słowników wielu języków.
int sock;
{
/* do wczytywania danych*/
char buf[1024];
do
{
/* pobranie żądania użytkownika*/
printf("Podaj maskę (CR koniec): ");
fgets(buf,sizeof(buf),stdin);
if (strlen(buf)>0)
buf[strlen(buf)-1]='\0';
/* wysłanie żądania (int dlugosc+ciag)*/
if ((strcmp(buf,"")!=0) && (writestr(sock,&buf)))
{
char *buf1;
int stop=0;
while (!stop && readstr(sock,&buf1))
{
printf("%s\n",buf1);
stop=strcmp(buf1,"")==0;
free(buf1);
}
}
}
while (strcmp(buf,"")!=0);
}
w którym funkcje readstr i writestr wysyłają ciągi w postaci długość + zawartość do/z podanego gniazdka.