Re: Работа с Winsock, или как правильно написать чат.
От: Tigor Россия  
Дата: 05.03.02 23:04
Оценка:
Здравствуйте Bers, Вы писали:

B>Добрый день. Пишу сетевой чат, и по этому поводу возникли вопросы:

B>Имеем: сервер с рабочими потоками для каждого клиента, принимает фразы от клиента и посылает фразы других клиентов. Каждый поток как-то должен сообщать основному что есть новые данные, точно так же как и основной поток должен сообщать рабочим, что надо что-то отослать. Соотсветственно эти события независимы.Как это правильнее реализовать, т.е. каким способом, через таймер ли, TCP или UDP, блокирующие/неблокирующие вызовы?

На правильность не претендую, но я бы делал так:
1. Использовал бы TCP (просто из-за надежности и удобства).
2. Работал бы с асинхронными сокетами, то есть обошелся бы максимум двумя потоками.
Один для пользовательского интерфейса приложения, другой для сообщений от winsock.
Большое количество потоков не всегда есть плюс, а головная боль с обеспечением их корректного взаимодействия точно будет.
К сожалению, в действительности все выглядит иначе, чем на самом деле.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.