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.