AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idtcpclient dissconnected
Thema durchsuchen
Ansicht
Themen-Optionen

idtcpclient dissconnected

Ein Thema von Klaus-B.Schmidt · begonnen am 4. Aug 2004 · letzter Beitrag vom 5. Aug 2004
Antwort Antwort
Klaus-B.Schmidt

Registriert seit: 2. Apr 2004
Ort: Braunschweig
65 Beiträge
 
Delphi 2005 Personal
 
#1

idtcpclient dissconnected

  Alt 4. Aug 2004, 10:15
hi leute, ich habe ienen client und einen servert, der client sendet eine anfrage nach einer datei an den server, nach erhalt der datei vom server wird die verbindung automatisch getrennt, was nicht sien soll, da ich eine permanente cverbindung zwischen den pc's brauch.

hab weder im client noch im server irgendwo disconect verwendet.

mfg
Klaus
Karsten
  Mit Zitat antworten Zitat
the_seed

Registriert seit: 31. Dez 2003
213 Beiträge
 
#2

Re: idtcpclient dissconnected

  Alt 4. Aug 2004, 10:46
hi das ist ganz einfach
ich weiss nicht wie du es gemacht hast aber hier wie mans machen könnte
Code:
client:

procedure TForm1.Button1Click(Sender: TObject);

begin

  idtcpclient1.host:=edit1.text;
  idtcpclient1.port:=strtoint(edit2.text);
  try
  idtcpclient1.connect;
  except ...

procedure TForm1.Button1Click(Sender: TObject);
var ergebnis:string;
begin
    try
   form1.idtcpclient1.writeln('existiertdatei');
    form1.idtcpclient1.writeln('c:\autoexec.bat');
      ergebnis:= form1.idtcpclient1.readln;
      except ...

------------------------------

server

procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var a,pfad:string;

begin
   a:=athread.connection.readln;

     if a='existiertdatei' then begin
      pfad:=athread.connection.readln;
        if fileexists(pfad) then athread.connection.writeln('positiv')
          else
        athread.connection.writeln('negativ')
        end
         
        else ....

sollte funktionieren
  Mit Zitat antworten Zitat
Klaus-B.Schmidt

Registriert seit: 2. Apr 2004
Ort: Braunschweig
65 Beiträge
 
Delphi 2005 Personal
 
#3

Re: idtcpclient dissconnected

  Alt 4. Aug 2004, 11:57
ich mach das ganze anders herum, der server sendet datei zum client

MfG
Klaus

P.S. ich poste anchher code
Karsten
  Mit Zitat antworten Zitat
Klaus-B.Schmidt

Registriert seit: 2. Apr 2004
Ort: Braunschweig
65 Beiträge
 
Delphi 2005 Personal
 
#4

Re: idtcpclient dissconnected

  Alt 4. Aug 2004, 15:15
wie versprochen, hier der code:

Server:
Delphi-Quellcode:
procedure TForm1.ServerConnect(AThread: TIdPeerThread);
begin
  //TBXDockablePanel1.Visible:=false;
  TBXLabel1.Caption:=AThread.Connection.LocalName;
  TBXLabel2.Caption:=timetostr(now);
  TBXLAbel3.Caption:=timetostr(now);
  LogBox.Lines.Add(timetostr(now)+' : Cnnection from '+ATHread.Connection.Socket.Localname);
end;

procedure TForm1.ServerExecute(AThread: TIdPeerThread);
var
  CB:TCommBlock;
  stream:TStream;
begin
  Athread.Connection.ReadBuffer(cb,sizeof(cb));
  if cb.Command='GETthen begin
    LogBox.Lines.Add(timetostr(now)+' Recive GET Command :'+CB.Msg);
    Stream := TFileStream.Create(extractfilepath(Application.exename)+'data\'+CB.Msg, fmOpenRead);
    AThread.Connection.OpenWriteBuffer;
    AThread.Connection.WriteStream(Stream);
    AThread.Connection.CloseWriteBuffer;
    Stream.Free;
  end;
end;
client:
Delphi-Quellcode:
//edit2: hier der richtige code:
procedure TForm1.Button1Click(Sender: TObject);
begin
client.Connect(10000);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  CB:TCommBlock;
  AStream:TMemoryStream;
begin
  CB.Command:=edit1.Text;
  cb.Msg:=edit2.Text;
  AStream:=TMemoryStream.Create;
  try
    Client.WriteBuffer(cb,sizeof(cb));

    Client.ReadStream(AStream,-1,true);
    AStream.Seek(0,sofrombeginning);
    SynEdit1.Lines.LoadFromStream(AStream);
  finally
    AStream.Free;
  end;
end;

end.
und der type TCommBlock :
Delphi-Quellcode:
unit GlobalUnit;

interface

type
  TCommBlock = record // the Communication Block used in both parts (Server+Client)
                 Command,
                 Msg:string[100]; // the message itself
              end;

implementation

end.
Karsten
  Mit Zitat antworten Zitat
Klaus-B.Schmidt

Registriert seit: 2. Apr 2004
Ort: Braunschweig
65 Beiträge
 
Delphi 2005 Personal
 
#5

Re: idtcpclient dissconnected

  Alt 4. Aug 2004, 20:18
nch neuer compillierung hängt sich der client trotz AntiFreez auf, und lässt sich erst beenden, wenn der server zugemacht wird .... bin total ratlos!!!

MfG
Klaus
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: idtcpclient dissconnected

  Alt 5. Aug 2004, 00:47
Hi,

warum ist der Code vom Server und vom Client der gleiche ?

Ich denke ich weiß wo dein Problem ist, aber dazu muss ich den Client-Code sehen.
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Klaus-B.Schmidt

Registriert seit: 2. Apr 2004
Ort: Braunschweig
65 Beiträge
 
Delphi 2005 Personal
 
#7

Re: idtcpclient dissconnected

  Alt 5. Aug 2004, 15:03
so, client code geupdated


MfG
Karsten
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: idtcpclient dissconnected

  Alt 5. Aug 2004, 15:20
Hi,

ja war der FEhler den ich vermutet hatte.

Also Du must folgendes ändern :

Im Servercode :

Code:
    AThread.Connection.OpenWriteBuffer;
// so wird die größe des streams in den ersten 4 bytes mit übertragen  
    AThread.Connection.WriteStream(Stream,true,true);
    AThread.Connection.CloseWriteBuffer;
Im Clientcode :

Code:
    Client.ReadStream(AStream);
    AStream.Position := 0;
    SynEdit1.Lines.LoadFromStream(AStream);
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Klaus-B.Schmidt

Registriert seit: 2. Apr 2004
Ort: Braunschweig
65 Beiträge
 
Delphi 2005 Personal
 
#9

Re: idtcpclient dissconnected

  Alt 5. Aug 2004, 15:48
big thx

MfG
Karsten
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz