kLAN działa na identycznej zasadzie co winPopup, przez tzw. MailSloty.
MailSlot kLANa to domyślnie kLAN, ale można go przestawić na dowolny inny w konfiguracji... Przesyłanie danych polega na wysyłaniu zestawów parametrów jako ciągu znaków oddzielanych od siebie znakiem '\0' i zakańczanych podwójnym zerem "\0\0" (podobnie jak w WinPopup właśnie...")
Format pojedynczego pakietu to (\0 oznacza rozdzielający parametry znak \0):
CODE
<ID>\0<Od>\0<Do>\0<Komenda>\0<<nty Parametr>\0>
Gdzie:
ID - identyfikator pakietu... Trzeba sprawdzać, czy pakietu nie przychodzą zdublowane (wysyłane są przez system przez kilka protokołów i mogą dojść w kilku kopiach)
Od - nazwa hosta nadawcy
Do - nazwa hosta odbiorcy
Komenda - tekstowa nazwa komendy
parametr - dodatkowe parametry specyficzne dla komend... Również oddzielane znakiem '\0'
Komendy (razem z dodatkowymi parametrami):
STATUS <status> <wersja> <opis>
zmiana statusu. Wersja oznacza wersję kLANa (numerycznie). Status to numerek odpowiadającym statusom w Konnekcie (wg SDK wersji 18.x).
GETSTATUS
prośba o wysłanie statusu...
PING
żądanie PONG
PONG
odpowiedź na PING
MESSAGE <id> <treść> <czas_time_t:HEX>
wiadomość. ID to identyfikator wiadomości (numerycznie). Czas to czas wysłania wiadomości jako time (z CRT) hexem
MESSAGEACK <id>
potwierdzenie odebrania wiadomości o identyfikatorze ID
SEARCH <id> [<imie> <nazwisko> <nick> <kom> <email> <K/M> <ur. min> <ur.max>]
żądanie SEARCHREPLY. Parametry po ID są opcjonalne (żeby podać np. sam nick, trzeba też wysłać puste wszystkie wcześniejsze pola). ID powinno być liczbą > 0. Przy czym dla wyszukiwania z parametrami powinno być również większe od 2.
SEARCHREPLY <id> <display> <imie> <nazwisko> <nick> <kom> <email>
Odpowiedź na SEARCH (z parametrem ID tym samym, który przyszedł w SEARCH). Można też wysłać np. po aktualizacji swoich danych osobowych z ID = 0 (klient może wtedy zaktualizować kontakt na swojej liście, ale nie musi)
Dodatkowo kTransfer przesyła i odbiera:
KTRANSFER_DCC <ip> <port>