Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2016, 10:47   #1
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию Сколько раз срабатывают асинхронные методы у сокетов? - C#

У меня такой вопрос: асинхронные операции сокета типа AcceptAsync, ReceiveAsync... они после запуска срабатывают только один раз чтоли? я просто думал что они будут как бы бесконечно срабатывать. (например AcceptAsync при каждом подключившемся клиенте) И как тогда принимать всех клиентов подключающихся? В отдельном потоке бесконечно крутить Accept? Тогда какой вообще смысл в асинхронной версии?
NewLamer&Programer вне форума Ответить с цитированием
Старый 06.03.2016, 11:10   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,726
По умолчанию

Цитата:
И как тогда принимать всех клиентов подключающихся? В отдельном потоке бесконечно крутить Accept
Нет, перзапускать асинхронную версию

Цитата:
Тогда какой вообще смысл в асинхронной версии?
В том, в чем и обычно. Асинхронная возвращает управление сразу и вызыает коллбек, когда надо, а не асинхронная блокирует до события.
p51x вне форума Ответить с цитированием
Старый 06.03.2016, 11:46   #3
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
В том, в чем и обычно. Асинхронная возвращает управление сразу и вызыает коллбек, когда надо, а не асинхронная блокирует до события.
я имел ввиду не старые асинхронные версии аля BeginAccept / EndAccept, а именно новую событийную асинхронную версию AsyncAccept
NewLamer&Programer вне форума Ответить с цитированием
Старый 06.03.2016, 11:55   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,726
По умолчанию

А я про что?

В доке
Цитата:
Returns true if the I/O operation is pending.The SocketAsyncEventArgs.Completed event on the e parameter will be raised upon completion of the operation.
Returns false if the I/O operation completed synchronously.The SocketAsyncEventArgs.Completed event on the e parameter will not be raised and the e object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.
По-моему, вы асинхронность с чем-то путаете... Асинхронность лишь значит, что функция может и скорее всего будет выполнена паралально с другим кодом...
p51x вне форума Ответить с цитированием
Старый 06.03.2016, 16:53   #5
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
По-моему, вы асинхронность с чем-то путаете... Асинхронность лишь значит, что функция может и скорее всего будет выполнена паралально с другим кодом...
ничего я ни с чем не путаю, мне просто показалось что тут
Цитата:
Сообщение от p51x Посмотреть сообщение
вызыает коллбек
написано возвращает калбэк, так делает именно BeginAccept...
NewLamer&Programer вне форума Ответить с цитированием
Старый 06.03.2016, 16:54   #6
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Нет, перзапускать асинхронную версию
гениально, помогло реально спасибо! несколько недель с этим мучался, а до этого почему то не додумался...
NewLamer&Programer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сколько раз меняется знак shalgan Помощь студентам 3 08.04.2014 18:53
C# Сколько раз встречается максимум azhigalieva Общие вопросы C/C++ 3 27.03.2014 23:09
Сколько раз Yulia13 Помощь студентам 1 22.01.2012 23:10
сколько раз повторяется элемент Gordan007 Помощь студентам 0 17.12.2011 03:21
сколько раз повторяется число feras Общие вопросы Delphi 2 21.10.2011 12:46