|
|
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов? Только тем, что если мы сначала отправили данные в сокет-1, а затем в сокет-2, то для асинхронных сокетов данные в сеть могут сначала отправиться из сокет-2, а потом из сокет-1; а для неблокирующих обязательно в том же порядке в котором вызывали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 20:18 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
При неблокирующих операциях над сокетом операция выполняется успешно только если она не требует блокировки вызывающего потока. Результат при этом сразу возвращается в момент вызова. При асинхронных операциях операция стартует в любом случае, а результат возвращается отдельно когда он будет известен. Никакого отношения к порядку отправки в сеть это все не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 21:38 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПри неблокирующих операциях над сокетом операция выполняется успешно только если она не требует блокировки вызывающего потока. Результат при этом сразу возвращается в момент вызова. Пожалуйста, а можно пример, какая из операций может потребовать блокировки - и приведет к ошибке, и какая из операция не потребует блокировки и завершится успешно в момент вызова? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 21:55 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
асинхронных сокетов, Например чтение из сокета. Если в буфере сокета есть непрочитанные данные, то они будут прочтены, иначе вернется ошибка EWOULDBLOCK (точно не помню текст). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 22:02 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Да в принципе любая операция с сокетом требующая пересылки данных по сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2014, 22:06 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
вызов функции с асинхронной операцией возвращает код "ошибки" EWOULDBLOCK (WSAEWOULDBLOCK), но это вовсе НЕ ОШИБКА, а просто код, означающий, что вызванная функция не вернула результат собственно операции ввода/вывода(и не собиралась): реальный результат должен быть получен позже и через другую функцию - select() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 18:21 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
й, Все так, только заменить слово "асинхронной" на "неблокирующей". Асинхронность не нуждается в EWOULDBLOCK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 19:58 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
йреальный результат должен быть получен позже и через другую функцию - select() Еще одна поправка. select не сообщает о готовности результата. Он сообщает о готовности начать операцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2014, 20:03 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyй, Все так, только заменить слово "асинхронной" на "неблокирующей". Асинхронность не нуждается в EWOULDBLOCK А в каких ОС есть реальные асинхронные операции с сокетами? Кстати, и означает ли тогда асинхронность сокетов обязательное использование паттерна проактор: демультиплексирование IOCP (Win/AIX)? А если используется реактор: epoll, pollset, kqueue (Linux, Solaris, AIX, HP_UX) - то это неблокирующие операции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2014, 12:36 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
асинхронных сокетов, Винда точно поддерживает асихронные операции через OVERLAPPED. IOCP это лишь один из способов работать с OVERLAPPED. В Линуксе есть группа функций aio_*. Но не знаю насколько она допилена для сокетов. В любом случае, асинхронность - это высокоуровневая концепция. Она может на низком уровне быть реализована множеством способов - poll и аналоги, пул потоков, или прямая реализация в ОС. Неблокирующие операции это всего лишь один из низкоуровневых технических моментов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2014, 16:57 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyасинхронных сокетов, Винда точно поддерживает асихронные операции через OVERLAPPED. IOCP это лишь один из способов работать с OVERLAPPED. В Линуксе есть группа функций aio_*. Но не знаю насколько она допилена для сокетов. В любом случае, асинхронность - это высокоуровневая концепция. Она может на низком уровне быть реализована множеством способов - poll и аналоги , пул потоков, или прямая реализация в ОС. Неблокирующие операции это всего лишь один из низкоуровневых технических моментов. Ну т.е. если предоставляемое API реактор - то это синхронная концепция, а если предоставляемое API проактор - то это асинхронная концепция (хотя и 1 и 2 могут быть на нижнем уровне реализованы через poll/select/epoll)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2014, 10:22 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
асинхронных сокетовНу т.е. если предоставляемое API реактор - то это синхронная концепция, а если предоставляемое API проактор - то это асинхронная концепция Ну получается что так. Только непонятно что вы от меня хотите нового узнать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2014, 13:22 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyасинхронных сокетовНу т.е. если предоставляемое API реактор - то это синхронная концепция, а если предоставляемое API проактор - то это асинхронная концепция Ну получается что так. Только непонятно что вы от меня хотите нового узнать :) Просто хотел для себя полностью выстроить логическую цепь, для лучшего понимания :) Спасибо Вам за ответы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2014, 21:04 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyасинхронных сокетовНу т.е. если предоставляемое API реактор - то это синхронная концепция, а если предоставляемое API проактор - то это асинхронная концепция Ну получается что так. Только непонятно что вы от меня хотите нового узнать :) А допустим в асинхронной прокаторной библиотеке Boost.Asio есть асинхронные, но блокирующие операции и какие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2014, 22:55 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
асинхронных сокетовА допустим в асинхронной прокаторной библиотеке Boost.Asio есть асинхронные, но блокирующие операции и какие? Нету. Есть синхронные и асинхронные. Синхронные - либо блокирующие либо не. А для асинхронных понятие "блокирование" не применимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 03:53 |
|
||
|
Чем в общем случае отличаются неблокирующие сокеты от асинхронных сокетов?
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskyасинхронных сокетовА допустим в асинхронной прокаторной библиотеке Boost.Asio есть асинхронные, но блокирующие операции и какие? Нету. Есть синхронные и асинхронные. Синхронные - либо блокирующие либо не. А для асинхронных понятие "блокирование" не применимо. А если что-то типа этого? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. А чего-нибудь типа такого? async_read() не выполниться пока не завершиться async_read_block(&handler_b), т.е. пока не запуститься handler_b. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2014, 13:32 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38706640&tid=1341267]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 489ms |

| 0 / 0 |
