может я что-то не то скажу...
берём linux (freebsd, solaris, ... по вкусу, в конце концов если винда так мила - cygwin, sfu или нативные порты).
берём xinetd, создаём файл /etc/xinted.d/myserver
Код
service myserver
{
socket_type = stream
protocol = tcp
wait = no
user = usr1
server = /usr/local/bin/myserver.pl
}
да, забыл - заводим пользователя usr1 и даём ему права на запуск программы (см. ниже) и доступ к нужным данным.
прописываем в /etc/services строчку типа
Код
myserver 12345/tcp
(12345 меняем на требуемый номер порта)
и пишем в /usr/local/bin/myserver.pl
Код
#!/usr/bin/perl
while (<>) {
if ($_ eq "hi") {
print "hi-hi\n"
}
}
получаем простейший сервер - и никакой магии.
xinetd ждёт соединения, пускает программу-сервер, "подсовывая" ей это соединение в качестве stdin и stdout.
программа читает stdin построчно, анализирует полученные строки и предпринимает какие-то действия.
ps: классический сервер на С и sockets пишется не сложнее, но в случае использования более высокоуровневого языка дальнейшее добавление функционала намного проще (с тем же perl: нужно нам хранить данные - берём dbi и у нас есть интерфейс к практически любой БД - от oracle до sqllite).