Архитектура клиент-сервер
От: gpepsi  
Дата: 15.09.11 19:25
Оценка:
Хочу понять как это правильно реализуется (теоретически).

Есть сервер, который принимает лишь запросы и отвечает на них (в идеале он сам может посылать данные).
Есть клиент, который открывает сокет и обменивается данными.

Сервер может обрабатывать несколько подключений. Если пришло новое подключение, то нужно создавать поток обработки. Либо обрабатывать в одном потоке все сетевые события. В первом случае нужно хранить пул потоков, во втором список дескрипторов (что лучше — не понятно).

Пусть теперь клиент открывает сокет. Запускает 2 потока: один — поток команд, а второй поток данных. Пусть оба потока посылают запрос.
Сервер отвечает. На что отвечает — данные или команды ? То есть ответы могут замешиваться и как это разруливается не совсем понятно.

А если сервер должен сам посылать команды, то тут вообще ничего не понятно...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.