![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Здравствуйте, извеняюсь за глупый вопрос, но ни как не могу понять. IdTelnetClient при вызове метода Disconnect, ошибка acceess violation, я не пойму куда он пытается ссылатся... заранее спасибо
|
|
#2
|
|||
|
|||
|
возможно но не уверен ты наверно не вызвал метод connect
|
|
#3
|
||||
|
||||
|
Нет. Ошибки не будет. Покажи весь код.
|
|
#4
|
||||
|
||||
|
с тем что я коннект не вызвал конечно смешно, но нет я нормально работаю команды посылаю, но вот при disconnect вылазит ошибка, а код почти весь с примера демки по инди... ну собстно вот он
это коннект... IdTelnetClient.Host := Ehost.Text; IdTelnetClient.port := StrToInt(EPort.Text); IdTelnetClient.Connect; ну и дисконнект //IdTelnetClient.CloseWriteBuffer; //IdTelnetClient.DisconnectSocket; //IdTelnetClient.ClearWriteBuffer; //IdTelnetClient. //memo1.Clear; IdTelnetClient.Disconnect; |
|
#5
|
||||
|
||||
|
А к какому серверу подключаетесь? И порт.
|
|
#6
|
||||
|
||||
|
сервак тож на indy на моей машине, хотя пробывал и наудаленной, если просто через telnet захожу (через cmd), там естественно ошибки нет, порт не занятый (5000), да это в клиенте косяк, только не пойму в чем, как будто что то не освобождается.
Вот еще код для DataAvailable, у клиента, в принципе и кода то больше для telnet в этой проге нет. Код:
const
CR = #13;
LF = #10;
var
Start, Stop : Integer;
begin
if Memo1.Lines.Count = 0 then
Memo1.Lines.Add('');
Start := 1;
Stop := Pos(CR, Buffer);
if Stop = 0 then
Stop := Length(Buffer) + 1;
while Start <= Length(Buffer) do begin
Memo1.Lines.Strings[Memo1.Lines.Count - 1] :=
Memo1.Lines.Strings[Memo1.Lines.Count - 1] +
Copy(Buffer, Start, Stop - Start);
if Buffer[Stop] = CR then begin
Memo1.Lines.Add('');
{$IFNDEF Linux}
SendMessage(Memo1.Handle, WM_KEYDOWN, VK_UP, 1);
{$ENDIF}
end;
Start := Stop + 1;
if Start > Length(Buffer) then
Break;
if Buffer[Start] = LF then
Start := Start + 1;
Stop := Start;
while (Buffer[Stop] <> CR) and (Stop <= Length(Buffer)) do
Stop := Stop + 1;
end;Admin: Не забываем форматировать код, иначе последуют санкции! Последний раз редактировалось Admin, 17.04.2008 в 20:18. |
|
#7
|
||||
|
||||
|
Как ни странно проблема решилась сама собой, ошибка была лишь при компилировании, когда запускаю уже готовый проект ошибки нет и все работает отлично, но все равно спасибо за помошь!
|