Главная страница
    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.046 c
2-1177689968
Oleg_teacher
2007-04-27 20:06
2007.05.20
Обьединит файлы


2-1178085270
RomanLN
2007-05-02 09:54
2007.05.20
вопрос SQL


2-1178346519
>>DEATH<<
2007-05-05 10:28
2007.05.20
и в чем ошибка


3-1172654705
Vlad Oshin
2007-02-28 12:25
2007.05.20
Очищается сетка DBgrida при ADOquery из другой формы.


2-1177655849
OlegMV
2007-04-27 10:37
2007.05.20
Проблема с координатами





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