т.е. как я понял - самый оптимальный вариант это асинхронные сокеты? так?
IMHO, написание серверов это очень не тривиальная задача. Сложно так сказать: "самый оптимальный". Есть разные подходы... Связь с клиентом (сокеты) это только одна из подсистем сервера.
Но, я бы рекомендовал, внимательно на них посмотреть.
Вообще, на форуме было несколько подобных тем с мыслями, ссылками на документацию/библиотеки. Поищи, почитай.