Форум: "Сети";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизTIdTcpServer,TIdTcpClient Найти похожие ветки
← →
Hereticsoul © (2005-11-08 15:31) [0]Привет мастерам!
Подскажите пожалуйста в моей проблемке.
Вообщем написал чат для хранения сообщений использую MySQL(ну удобно...можно посылать сообщения в оффлайне и проч прелести...типа логов) но мне надо было знать когда кто нибудь отправит сообщение и заставить клиента обновиться.Сначала я взял Tserversocket и Tclientsocket они вроде работали нормально, но сервер со временем вылетал с ошибкой((( и сейчас я хочу это заменить чем нибудь другим...я схватился за сабж но так и не понял как это все заставить работать т.к. у клиента нет такой вещи как например события "Если кто нить че нить прислал"...скачав пример с сайта Indy я был крайне удивлен (кому интересно может посмотреть
http://www.projectindy.org/DemoDownloads/Indy9Demos_26Oct04.zip
1,3 Mb) вообщем такой подход мне не особо подходит....
мне остается надеятся что может кто нить поможет??
← →
Digitman © (2005-11-08 15:39) [1]
> взял Tserversocket и Tclientsocket они вроде работали нормально,
> но сервер со временем вылетал с ошибкой
с учетом ошибок в ТВОЕМ алгоритме работы с Tserversocket - ничего удивительного .
> сейчас я хочу это заменить чем нибудь другим
... а потом и третьим, и четвертым, и столохматым) ..
толку-то от замены, если ты споткнувшись о первую же непонятную тебе ошибку и даже не сделав попытки разобраться в ней начинаешь пенять на компонент ?
← →
Slym © (2005-11-08 15:44) [2]Hereticsoul © (08.11.05 15:31)
события "Если кто нить че нить прислал"...
У клиента есть такое событие
Hereticsoul © (08.11.05 15:31)
но сервер со временем вылетал с ошибкой
У ошибки есть сообщение?
Hereticsoul © (08.11.05 15:31)
вообщем такой подход мне не особо подходит
Какой такой, и чем именно?
← →
Hereticsoul © (2005-11-08 16:19) [3]
> с учетом ошибок в ТВОЕМ алгоритме работы с Tserversocket
> - ничего удивительногоprocedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Begin
For i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
Begin
ServerSocket1.Socket.Connections[i].SendText("U"+#10#13);
End;
End;
Это весь сервер.Большего мне от него и не надо.
> У клиента есть такое событие
OnConnected
OnDisconnected
OnStatus
OnWork
OnWorkBegin
OnWorkEnd
Где?
Либо я не понял твоего сарказма.....
> Какой такой, и чем именно?
Скачал?Посмотрел?Увидел? Вообщем в клиенте в демо чата от инди на форме висит таймер и OnTimer клиент начинает пытаться читать....вообщем смотри самprocedure TForm1.Timer1Timer(Sender: TObject);
var
Com,
Msg : String;
begin
if not IdTcpClient1.Connected then
exit;
Msg := IdTCPClient1.ReadLn("", 5); //читаем (таймаут 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;
← →
Digitman © (2005-11-08 16:29) [4]
> Это весь сервер
ну так а что ж ты хотел ?
примитивный сервер - примитивные и результаты ... ни обработки ошибок, ни анализа результата вызова send-метода ...
← →
Hereticsoul © (2005-11-08 16:46) [5]Ну что ж я взываю к помощи...научи пожалуйста...
И все же на каких принципах работать с сабжем???
← →
Digitman © (2005-11-08 16:58) [6]
> на каких принципах работать с сабжем?
как минимум на 3-х
1. Обязательная обработка обытия OnClientError
2. Обязательный анализ результатов, возвращаемых Send/Receive-функциями
3. Задействование обработчика события OnClientWrite (зависит от результатов вызовов Send-методов)
← →
Eraser © (2005-11-08 22:16) [7]
> Hereticsoul © (08.11.05 16:19) [3]
Пример работы с Indy, который ты привёт скорее показывает как НЕ надо работать с этими компонентами.
Неколько примеров есть тут http://www.atozed.com/indy/Demos/
PS Устанавливай Indy 10.
← →
Hereticsoul © (2005-11-09 17:24) [8]Спасибо господа огромное...буду делать выводы)))
А пример на полном серьезе оффициальный)))) сам удивлялся и не мог понять )
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c