Здравствуйте, Аноним, Вы писали:
А>Привет! А>Как сделать таймаут только на метод BeginReceive?
А>т.е. сначала я делаю Send, а вот Receive надо ждать не более 5 сек. Как такое лучше сделать?
SetSocketOption + SocketOptionName.ReceiveTimeout ? А вообще можно просто запустить таймер на 5 секунд, по приходу данных закрыть таймер, а по срабатыванию таймера — закрыть сокет.
Здравствуйте, Jolly Roger, Вы писали:
А>>Как сделать таймаут только на метод BeginReceive?
А>>т.е. сначала я делаю Send, а вот Receive надо ждать не более 5 сек. Как такое лучше сделать?
JR>…А вообще можно просто запустить таймер на 5 секунд, по приходу данных закрыть таймер, а по срабатыванию таймера — закрыть сокет.
А разве BeginReceive не асинхронный? Зачем тогда таймер? Вызвали и AsyncWaitHandle.WaitOne(5 секунд) по результату определяем что произошло: таймаут или завершение.
Help will always be given at Hogwarts to those who ask for it.
Здравствуйте, _FRED_, Вы писали:
_FR>А разве BeginReceive не асинхронный? Зачем тогда таймер? Вызвали и AsyncWaitHandle.WaitOne(5 секунд) по результату определяем что произошло: таймаут или завершение.
Ну я просто подумал, что этот сценарий слишком очевидный, чтобы ТС не догадался сам, и что подразумевается всё-таки полностью асинхронная работа с callback.