Indy Components
7 отговора
258 прегледа
Indy Components
Някой може ли да ми каже как да приемам съобщенията изпратени от сървара до клиента.? (разбрах как да се получават чрез таймер:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var s:string;
begin
if idtcpclient1.Connected then
begin
s:=idtcpclient1.ReadLn;
if s<>'' then memo1.Lines.Add(s);
end;
end;
обаче така формата на клиента става неактивна)
Ако някой знае как клиента може да приеме съобщение от сървара да пише
Благодаря ви предварително
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var s:string;
begin
if idtcpclient1.Connected then
begin
s:=idtcpclient1.ReadLn;
if s<>'' then memo1.Lines.Add(s);
end;
end;
обаче така формата на клиента става неактивна)
Ако някой знае как клиента може да приеме съобщение от сървара да пише
Благодаря ви предварително
Re: Indy Components
Аз Indy не ползвам, но кода за четене/запис го сложи в събитието OnWork.
чети и дишай по-леко
чети и дишай по-леко
Re: Indy Components
Vish tozi sait [линк]. Ako neti pomogne pishi
mi na [email protected] da ti pratia INDY Project (INDY Chat Server i INDY Chat Client)
mi na [email protected] da ti pratia INDY Project (INDY Chat Server i INDY Chat Client)
Re: Indy Components
някой може ли да ми напише функция за изпращане на някакво съобщение от idTCPServer до клиент
и функция за приемане на това съобщение от idTCPClient
възможно по най-простия начин
и функция за приемане на това съобщение от idTCPClient
възможно по най-простия начин
Re: Indy Components
ми виж [линк]
Между другото аз ползвам събитията на TidТCPIntercept
Между другото аз ползвам събитията на TidТCPIntercept
Re: Indy Components
От страна на сървъра ф-ята за получаване на стринг изглежда така:
void __fastcall TSrvMainForm::TCPSvrExecute(TIdPeerThread *AThread)
//Това е прихващане на събитието TIdTCPServer->Execute()
{
String strIn = AThread->Connection->ReadLn("\r\n"); // четене
.....
AThread->Connection->WriteLn("ala bala"); // изпращане на стринг на клиента
}
От страна на клиента с използване на TIdTCPClient - CliSock
CliSock->Connect();
CliSock->WriteLn("ala bala); // писане
String strTmp = CliSock->ReadLn("\r\n",m_iTimeOut); // четене
CliSock->Disconnect();
Постави във основната ф-ма TIdAntiFreeze компонента за да не се блокира нишката за прихващане на събитията от усера в клиента и сървърната част.
Добави си кода за прихващане на изключения - махнал съм го за да не разводнявам нещата.
Това е С код така че, замени тези смешни символи "->" с точка + счупените скоби
void __fastcall TSrvMainForm::TCPSvrExecute(TIdPeerThread *AThread)
//Това е прихващане на събитието TIdTCPServer->Execute()
{
String strIn = AThread->Connection->ReadLn("\r\n"); // четене
.....
AThread->Connection->WriteLn("ala bala"); // изпращане на стринг на клиента
}
От страна на клиента с използване на TIdTCPClient - CliSock
CliSock->Connect();
CliSock->WriteLn("ala bala); // писане
String strTmp = CliSock->ReadLn("\r\n",m_iTimeOut); // четене
CliSock->Disconnect();
Постави във основната ф-ма TIdAntiFreeze компонента за да не се блокира нишката за прихващане на събитията от усера в клиента и сървърната част.
Добави си кода за прихващане на изключения - махнал съм го за да не разводнявам нещата.
Това е С код така че, замени тези смешни символи "->" с точка + счупените скоби
Re: Indy Components
неможах да си преведа това: void __fastcall TSrvMainForm::TCPSvrExecute(TIdPeerThread *AThread), но за сега не ми и трябва
Много ти благодаря за помощта.
Много ти благодаря за помощта.
Re: Indy Components
Ами то Делфито ще ти го напише :-)
Постави TIdTCPServer, превключи на Еvents таба му и кликни 2 пъти в/у OnExecute. TSrvMainForm e името на моята форма в/у която е поставен този компонент.
Постави TIdTCPServer, превключи на Еvents таба му и кликни 2 пъти в/у OnExecute. TSrvMainForm e името на моята форма в/у която е поставен този компонент.