![]() |
Модераторы: feodorv |
![]() ![]() ![]() |
|
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Пишу сетевую часть одного приложения.
Начал: Асинхронные сокеты , WSAEventSelect, WSAEnumNetworkEvents и т.д. Читал давнишние посты Олег2005 о подводных камнях этого способа. Задумался , почему бы не сделать все таким образом: Поток на прием , поток на отправку , никаких асинхронных сокетов. А там делай что хочешь , эвенты и т.д. Если еще выставлять флаг MSG_WAITALL , то можно забыть о проблемах со сборкой пакетов. Понимаю , все таки будет минус в производительности (но при сегодняшних мощностях это будет почти не ощутимо) Подтолкните меня в какую-то из сторон - асинхронные сокеты/или 2 потока ??? Спасибо за ответы! -------------------- ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 5 Всего: 154 |
асинхронные сокеты, я использую boost::asio, эта библиотека все сильно упрощает
|
|||
|
||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Тогда вопрос, что использует boost::asio под win , порты завершения??? -------------------- ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 5 Всего: 154 |
||||
|
||||
Олег2005 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 421 Регистрация: 26.5.2005 Где: Рига Латвия Репутация: 6 Всего: 11 |
Все зависит от числа запросов, приходящих одновременно.
Если их много - то имейте в виду - на каждый поток выделяется 1 мег оперативки под все поточные дела. Скажем у вас 500 клиентов - поток отправки + приема*500 мег= 1 гиг. |
|||
|
||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Нет , это клиент , выйдет только 2 потока - отправка/прием -------------------- ![]() |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 5 Всего: 154 |
в случае 2х потоков ты сможешь одновременно отправлять данные только одному клиенту, ну и принимать соотв. то-же
|
|||
|
||||
REZiaMIX |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Объясню получше, пишу клиент , канал данных нужен только один клиент <---> сервер Т.е. клиенту нужно работать только с одним сокетом. Сокет - один , 2 потока. Поток первый - recv Поток второй - send ну и дополнительные прибамбасы) Но я уже решил использовать boost::asio , так что тему можно закрывать))) -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |