|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.09.2007, 20:39 | #1 |
Форумчанин
Регистрация: 25.03.2007
Сообщений: 166
|
помогите idtcpIP
Категорически всех приветствую! Проблема такая: как то я написал чат для локалки с помощью tclientsocket & tserversocket, теперь я хочу сделать это в indy. Мне нужно постоянно проверять пришло ли сообщение от других юзеров, но если я вызываю idtcpip1.readln тогда, когда ничего не пришло, прога виснит. Как вызывать idtcpip1.readln именно тогда, когда сообщение приходит?
|
20.09.2007, 15:34 | #2 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Udp не катит для чата?
ну тут нужно исключение влепить... Наверное, так: with IdTCPClient do begin try connect; writeln(); ..... otvet:=readLn; .... except disconnect; end; ну слысл такой: конектишься, если нет связи, то дисконект.... Ведь сервер вы настраиваете на IdTCPServerexecute(AThread:TidPeerT hread), тоесть если клиент делает запрос и есть связь, то сервер ответит.... он не ответит в том случае, когда нет соединения....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 20.09.2007 в 15:38. |
20.09.2007, 18:44 | #3 |
.NET-чик
Форумчанин
Регистрация: 24.03.2007
Сообщений: 569
|
У Клиента есть такое событие как OnWork и OnStatus. То проверку что сервер ответил наверное лучше сделать на OnWorkEnd либо попробуйте на OnStatus.
Если с сервера нужно ответить именно определенному клиенту то тут лучше использовать его (AThread:TidPeerThread). Совет, когда клиент коннектится, то сохранят полностью весь AThread, а ответ потом делается вот так AThread.Connection.ReadLn(); Это если к примеру на клиенте запущено 2 проги клиента, чтобы ответ пришел именно тому куда надо
"Разработка под веб - как работа с пылесосом: нихрена не прикольно, но засасывает"
Мо маленький городок |
20.09.2007, 19:47 | #4 |
Форумчанин
Регистрация: 25.03.2007
Сообщений: 166
|
Если делаю исключение или проверку в событии onStatus - прога так же виснит. На события OnWork, OnWorkBegin, OnWorkEnd - не как не реагирует. Может есть еще какието способы? Подскажите пожалуйста.
|