Здравствуйте!
Имеется лисп и клиенты (на самом деле на Дельфи, но будем считать, что они будут на питоне или чем-нибудь ещё). Задача - сделать систему клиент/сервер:
- обмен между клиентом и сервером - по tcp/ip (сокеты?)
- ведение списка пользователей
- авторизация с паролем
- возможность шифрования
- каждый клиентский процесс - это отдельный thread на сервере в рамках единого образа лиспа
- общение происходит синхронно. Инициатива в общении принадлежит клиенту. С точки зрения приложения, клиент отправляет запрос (несколько строк, затем признак завершения запроса, либо sexp) и ждёт строки результата (несколько строк, затем признак завершения, либо sexp, либо что-то ещё с однозначным признаком завершения).
- определение того, что клиент ещё не умер, если умер - вызов ф-ии на стороне лиспа для корректного закрытия соединения
- таймаут на клиенте.
- клиент должен иметь возможность корректно отработать обрыв связи.
Производительность не имеет большого значения.
Прошу совета, в какую сторону копать, а ещё лучше - где взять образец кода для раздраконивания/перепиливания. Например, годится ли telnet и есть ли у него вменяемая реализация на лиспе? slime, видимо, не годится, т.к. отсутствует авторизация, а клиент - только лисповый. Можно было бы сделать через веб-сервер, но он асинхронный да и вообще это извращение.