Re: Некоторые вопросы касательно сокетов....
От: Cruser Украина  
Дата: 26.12.06 11:00
Оценка:
Здравствуйте, Forgotten, Вы писали:

F>Ситуация классическая.

F>Клиент — сервер. Клиент подключается и начинает принимать данные. Сервер через некоторый таймаут отправляет данные пока от клиента не получит сигнал о закрытии коннекта. Загвоздка вот в чем. Клиенту нужно переодически выводить данные на экран. И здесь ничего не получается. Функция получения данных с сокета не возвращает управление пока сервер продолжает посылать данные. Технически все реализовано в виде двух бесконечных циклов как на клиенте так и на сервере. Выход из них осуществляется када юзер в клиенте щелкнет на кнопку. Нужно каким-то образом приостановить прием данных, чтоб вывести на экран а потом опять продолжить. И как это сделать кроме как прервать коннект и заново приконнектится — я не знаю. Прошу сильно не ругать если вопрос слишком ламерский. С сокетами познакомился буквально "вчера". Наверняка существует способ сделать все это легко и красиво.
F>Заранее спасибо.

Непонятно, как обрабатывается щелчок юзером на кнопку, если цикл зависате до конца приёма? Если же он обрабатывается, то тогда и данные можно выводить..

Вообще два основных пути, первый лучше имхо:

1) Принимать в дополнительном потоке (отображать в основном)
2) В цикле приёма, вызывать что-то вроде ProcessMessages() таким образом будут обрабатываться сообщения окна, и можно отображать данные
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.