Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Зависает IdTCP Demo6, откомпилированный в Делфи-7   Найти похожие ветки 

 
Winni   (2004-07-02 16:54) [0]

В Делфи6, в папке Demo\Internet есть пример Chat, выполненный с помощью IdTCPClient  и IdTCPServ. Все работает хорошо. Но если те эе тесты компилировать в Делфи7, этот Демо зависает. Причем экзешники, компилированные Д6, работают нормально (на моей машине). Зависание происходит после того как:
- Сервер активизирован
- Клиенту задано имя (Login) и клиент подключился
- Сервер посылает сообщения ( и клиент их получает):
   AThread.Connection.WriteLn("ISD Connection Established...");
   AThread.Connection.WriteLn("Please send valid login    sequence...");
   AThread.Connection.WriteLn("Your Name:");
. . . и далее . . .
   Client.Name := Msg;
   UpdateClientList;
   BroadcastMessage("System", Msg + " has just logged in.");
   AThread.Connection.WriteLn(memEntry.Lines.Text);

. . .  далее не нашел откуда - клиенту приходит текст:
Welcome to the Indy TCP Server Demo Chat.
This program is disigned simply to show a slightly more advanced  usage of some of the commong components found in Indy.

Клиент прослушивает сеть следующим образом:

procedure TForm1.Timer1Timer(Sender: TObject);
var
 Com,
   Msg: string;
begin
 if not IdTcpClient1.Connected then
   exit;

 Msg := IdTCPClient1.ReadLn("", 5);

 if Msg <> "" then
   if Msg[1] <> "@" then
   begin
     { Not a system command }
     memLines.Lines.Add(Msg);
   end
   else
   begin
     { System command }
     Com := UpperCase(Trim(Copy(Msg, 2, Pos(":", Msg) - 2)));
     Msg := UpperCase(Trim(Copy(Msg, Pos(":", Msg) + 1, Length(Msg))));
     if Com = "CLIENTS" then
       lbClients.Items.CommaText := Msg;
   end;

end;

Пробовал заменить таймер обычной кнопкой, но результат тот же.


 
Reindeer Moss Eater ©   (2004-07-02 16:59) [1]

Пробовал заменить таймер обычной кнопкой, но результат тот же.

Таймер кнопкой заменять нельзя. Надо обязательно кнопкой с рисунком (желательно рисунком таймера) TbitBtn


 
Winni   (2004-07-02 18:53) [2]

Оказывается, достаточно поставить на обе формы IdAntiFreez. Однако появляется другое - если двигать форму клиента в Run-Time, то зависает и сервер и оба клиента ( пробую на одной машине в таком сочетании ).Если никого не двигать - все работает нормально. На форуме было сказано, что помогает TIdSync ( в аналогичной ситуации). Нет ли у кого - нибудь примера решения этой задачки?


 
Reindeer Moss Eater ©   (2004-07-02 18:57) [3]

Оказывается, достаточно поставить на обе формы IdAntiFreez.

Так вот оказывается что такое "зависание"

Если никого не двигать - все работает нормально.

1. Зачем серверу форма?
2. Зачем её двигать?
3. Зачем TidTCPClient в клиенте помещать на форму, которую можно двигать? /а не в датамодуле держать например/


 
Winni   (2004-07-02 20:45) [4]

Конечно, можно не использовать формы, но все же формы удобнее и интересно понять, в чем дело. По indy совсем нет примеров. Д7 ссылается на Интернет, а там как я понял, исходники модулей Indy.
Где бы найти примеры применения компонент Indy?



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.032 c
3-1092217159
Mitrofan
2004-08-11 13:39
2004.09.05
Отчет в виде дерева


14-1092303783
Max Ivanych
2004-08-12 13:43
2004.09.05
Кто-нибудь покупал квартиру в кредит?


1-1092839081
Toshanius
2004-08-18 18:24
2004.09.05
Очет


6-1088490331
leonidus
2004-06-29 10:25
2004.09.05
Компонент idHTTP не работает через прокси


1-1092729700
velial
2004-08-17 12:01
2004.09.05
хитрый Grid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский