tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
5593
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    bashi bashi ist offline Grünschnabel
    Registriert seit
    Jul 2003
    Ort
    Bad Doberan (MV)
    Beiträge
    2
    Hallo,

    ich hab ein Problem, ich muß bis Mittwoch nen kleinen Chat zusammengebastelt haben, einen Client und einen Server.
    Ich benutze TcpClient und TcpServer aus dem "Internet" Reiter von Delphi 7 mit Indy hab ich das auch schon versucht zu basteln, hab ich auch nicht hinbekommen.
    Mein Server kann an den Client keine Strings schicken bzw. dieser nimmt sie nicht an. Andersrum (Client zu Server) ****t es.

    mein Funktionierendes Bsp:
    empfangen mit
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    procedure TForm1.TcpServer1Accept(Sender: TObject;
      ClientSocket: TCustomIpClient);
    begin
      while ClientSocket.Connected= True do begin
        MemoChat.Lines.Add(ClientSocket.Receiveln);
        if ClientSocket.Receiveln = '' then begin
          break;
        end
      end;
    end;
    das break hab ich gemacht, weil er mir ohne in einer endloschleife das Memo vollschreibt mit leerzeichen, sobald der Client beendet wird (kann auch nicht ganz ok sein).
    Und gesendet wird mit
    Code :
    1
    
    TcpClient1.Sendln(LineText);
    Das haut ja alles schon mal hin.
    aber andersrum klappt es einfach nicht, ich hab schon folgendes versucht:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    procedure TForm1.BtnConnectClick(Sender: TObject);
    begin
      TcpClient1.RemoteHost:= InputIP.Text;
      TcpClient1.RemotePort:= Port;
      TcpClient1.Open;
      [COLOR=red]while TcpClient1.Connected= True do begin
        TcpClient1.Receiveln;
      end;[/COLOR]
    end;
    dabei kackt mir der client aber ab.
    und zum senden:
    Code :
    1
    
    TcpServer1.Sendln(LineText);
    Der Client scheint den String garnicht zu empfangen, da ich versucht habe eine OnReceive Prozedur mit ner einfachen 'test' ausgabe zu erstellen, diese wird garnicht ausgeführt.
    Bitte helft mir, ich komm einfach nicht weiter.
    (übrigens hab ich nicht viel ahnung von Delphi *absoluteranfängerichbin*)

    Vielen Dank schonmal im Voraus!
     
    Was passiert mit dem Loch, wenn der Käse weg ist?

  2. #2
    Registriert seit
    Apr 2001
    Ort
    Hamburg
    Beiträge
    1.309
    Deine ganzen while-Schleifen solltest du erstmal rausnehmen, die sollten alle in Endlosschleifen enden.

    Da du, wie schon gesagt, noch nicht so viel Erfahrung mit Delphi hast, empfehle ich dir die ClientSocket und ClientServer Komponenten, die sind für einen einfachen Text-Chat besser geeignet.
     
    --
    GNU/Linux - Weil man echte Freunde nicht kaufen kann

  3. #3
    bashi bashi ist offline Grünschnabel
    Registriert seit
    Jul 2003
    Ort
    Bad Doberan (MV)
    Beiträge
    2
    Sind das auch Non-Visual Komponenten? und wo bekomm ich die her?
    Oder weiß einer ein richtig einfaches Tut, mit dem ich das hinbekomme? ich hab schon dieses hier versucht, ich bekomm aber garnichts hin. Das Indy Beispiel, welches man sich von der Homepage laden kann, wird bei mir nicht mal vernünftig kompiliert.
     
    Was passiert mit dem Loch, wenn der Käse weg ist?

  4. #4
    digleu digleu ist offline Mitglied Bronze
    Registriert seit
    Jan 2003
    Ort
    Alfter, das Dach der Welt
    Beiträge
    31
    Hm ich glaube bei Delphi7 sind die nicht mehr dabei ...

    aber mal was anderes: ich habe das gleiche Problem mit dem Lesen bei der Indy Client Komponente. Es existiert kein OnReceive oder OnExecute Event. Wie soll ich dann bemerken, dass eine Server antwort gekommen ist? Soll ich vielleicht doch eine Endlosschleife (bzw. Schleife, die bis zum Disconnect läuft) bauen, die dann ständig ReadLn auf den Socket ausführt? Die müsste dann, denke ich, in einem seperaten Thread liegen. Stopt das ReadLn denn den Code bis auch wirklich etwas ausgelesen wurde? Hoffe, dass jemand antworten kann...

    mfg Lars
     

Ähnliche Themen

  1. Bitte Hilfe zu TcpClient/TcpServer
    Von -H-T-P- im Forum Borland CBuilder und VCL
    Antworten: 6
    Letzter Beitrag: 12.01.09, 19:39
  2. Helft mir. Bitte!
    Von macropode im Forum C/C++
    Antworten: 12
    Letzter Beitrag: 16.02.05, 16:49
  3. Helft mir bitte...
    Von Stylehallo im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 16.11.03, 12:04
  4. Ah bitte helft mir :(
    Von Interritor im Forum PHP
    Antworten: 3
    Letzter Beitrag: 19.08.02, 16:44
  5. helft mir bitte !!
    Von Budera im Forum 3D Studio Max
    Antworten: 1
    Letzter Beitrag: 09.07.01, 09:52