Делаю полигон для боев ИИ в крестики-нолики. Сервер запускается, открывает два файла для сообщений клиентам, запускает два выбранных клиента ИИ. Далее идет общение с клиентами через открытые с общим доступом файлы. Такая система выбрана из соображений простоты, чтобы в перспективе клиента можно было писать на любом языке, не сильно вникая в работу сервера.
Программы (и сервер, и клиенты) в режиме ожидания читают из файла команду, если команда не поступила - выполняют Sleep 50 и снова читают. При такой системе, почему-то, при запуске клиентов (Shell) сервер сильно притормаживает, а если в клиенте заменить цикл с Sleep на таймер с тем же периодом 50 ms, то срабатывает быстро, не пойму, в чем причина, разве Sleep не отдает управление системе?
Оба варианта прилагаются, можно сделать копию EXE клиента, а можно и не делать - запускать дважды один EXE и для крестиков, и для ноликов, проблем не возникает.
ИИ пока не прописан, клиент просто делает десять попыток поставить знак на свободное место, если на выходит - засчитывается проигрыш. Пока проверяется система связи.