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

Вниз

IdTCPClient   Найти похожие ветки 

 
tigraman   (2007-04-24 23:55) [0]

Здравствуйте. Такой вопрос: Я передаю данные через IdTCPClient, все нормально если я передаю сроку вида IdTCPClient.WriteLn("text"), но если я пытаюсь засунуть туда переменную
IdTCPClient.WriteLn(Edit1.Text);при выполнении данного кода все подвисает, подкажите где я не прав.


 
Сергей М. ©   (2007-04-25 08:06) [1]

GetCurrentThreadId = MainThreadId ?


 
tigraman   (2007-04-25 08:26) [2]

А по подробнее можно объяснить что это?


 
Сергей М. ©   (2007-04-25 08:35) [3]

if GetCurrentThreadId = MainThreadId then
 MessageBox(0, "Текущий поток - основной", "", mbOk or mbSetforeground)
else
 MessageBox(0, "Текущий поток - дополнительный", "", mbOk or mbSetforeground);
try
IdTCPClient.WriteLn(Edit1.Text);
except
on e:exception do
  MessageBox(0, PChar(e.Classname + " " + e.Message), "", mbOk or mbSetforeground);
end;

Какие сообщения видишь при этом ?


 
tigraman   (2007-04-25 21:43) [4]

Вижу сообщение Текущий поток - основной. Но непоняное дело, на другом компьютере ничего не меняя вроде все работает нормально, может что-то с сетью, хотя странно как-то.


 
tigraman   (2007-04-25 22:14) [5]

А можно еще вопрос? на событие компонетна IDTCPServer я получаю и обрабатываю данные посланные клиентом, только как потом сообщить клиенту о результате обработки данных?
Вот так AThread.Connection.WriteLn("Команда выполнена успешно"); Но на какое событие клиента их обрабатывать? На IdTCPClientConnected? Чего то не выходит, хотя в примере что я видел вроде так было.


 
Сергей М. ©   (2007-04-26 09:56) [6]


> Чего то не выходит


А вошло ли это "чего то" вообще ?

Показывай код ..


 
tigraman   (2007-04-26 19:34) [7]

Хорошо, вот код:

Отпраляю команду
IdTCPClient.Host := frmMain.Edit1.Text;
IdTCPClient.Port := 9542;
IdTCPClient.Connect;
IdTCPClient.WriteLn(NetCombobox.Text+"|"+Edit2.Text);
IdTCPClient.Disconnect;


Обрабатываю команду
procedure TfrmMain.IdTCPServerExecute(AThread: TIdPeerThread);
var
Command,comman2,pass : String;  
begin

Command := AThread.Connection.ReadLn;
comman2:=copy(Command,0,pos("|",Command)-1);
pass:=copy(Command,pos("|",Command)+1,1500);

AThread.Connection.WriteLn("Command execute sucsesful");

if (pass= RegReadStr(HKEY_LOCAL_MACHINE,"Software\netshut\s","r"))
and
(form2.SecurityCheckBox1.Checked=true) then begin

AThread.Connection.WriteLn("Action has been execute!");

if comman2=NetCombobox.Items.Strings[0]
then form1.Poweroff1.Click;

if comman2=NetCombobox.Items.Strings[1]
then form1.Reboot1.Click;

if comman2=NetCombobox.Items.Strings[2]
then form1.Logoff1.Click;

if comman2=NetCombobox.Items.Strings[3]
then form1.Hibernate1.Click;

if comman2=NetCombobox.Items.Strings[4]
then form1.Suspend1.Click;
    end
else begin

AThread.Connection.WriteLn("Error, password wrong!");
  end;
end;


А тут, как я понимаю, должен быть обработан ответ сервера
procedure TfrmMain.IdTCPClientConnected(Sender: TObject);
var
   LString : String;
begin
LString := IdTCPClient.ReadLn;
StatusBar.SimpleText:=LString;
end;


С точки зрения мастеров на сколько глупо выглядит код? И как правильно передавать переменные, или и так нормально?



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

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

Наверх




Память: 0.46 MB
Время: 0.04 c
15-1176697593
vajo
2007-04-16 08:26
2007.05.20
Руслан Чагаев побил Николая Валуева


15-1177325971
mrhx
2007-04-23 14:59
2007.05.20
VISG: visual and smart GUI builder.


15-1177344906
vasIZmax
2007-04-23 20:15
2007.05.20
Паттерны проектирования


15-1176934894
vasIZmax
2007-04-19 02:21
2007.05.20
Re: Опрос


3-1173133245
Mr. D.
2007-03-06 01:20
2007.05.20
Невозможность снять привелегии с SYSDBA в IBExpert





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский