Главная страница
    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.063 c
1-1174736364
gosha73
2007-03-24 14:39
2007.05.20
Указатель на метод класса


2-1177232286
VegaS
2007-04-22 12:58
2007.05.20
Управление удаленным хостом через TCP/IP


15-1176812625
@!!ex
2007-04-17 16:23
2007.05.20
Помогите собрать багажник на пятерку!


15-1176238641
Суслик
2007-04-11 00:57
2007.05.20
И снова хелперы :)


8-1158036845
Dmitriy O_
2006-09-12 08:54
2007.05.20
Как конвертировать BMP в JPG посредсвои Delphi ?





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