Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.01.2009, 22:25

Delphi Chat geht nicht

Seit 2 Tage sitze ich hier schon an diesem Programm und bekomme es einfach nicht hin meinen Chat zum laufen zu bringen o.O

Ich habe einen Server und einen Client. Wenn sich der Client an den Server connected, so sollte im Chat fenster auch eine Meldung erscheinen das sich der Client angemeldet hat. Wenn dies nicht klappt sollte ein Error-code im Chat fenster erscheinen. Leider kommt bei mir beides nicht und ich weiss also nicht wo mein fehler sein könnte -.-

Wäre echt nett wenn sich jemand die Zeit nimmt und meinen Quellcode durchschaut. Benutzen tue ich die sockets die von Delphi 2005 mitgeliefert werden. (Indy möchte ich nicht benutzen.)

download: quellcode + projekt dateien (server und client sind nochmal extra getrennt gepackt)

http://rapidshare.com/files/185102440/pack.zip.html

Toa

Alter Hase

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

2

17.01.2009, 23:13

Ich denke nicht, das hier irgendwer deinen gesamten Quellcode lesen wird.
Wenn du ein Problem hast poste die ensprechenden Zeilen hier im Forum und es wird dir sicherlich jemand helfen ..

MFG Toa

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

3

18.01.2009, 09:42

Du könntest erstmal mit Putty testen ob der Server wirklich funktioniert (Raw connection).
Dann hättest du schonmal eine Fehlerquelle ausgeschlossen.

4

18.01.2009, 10:26

Also mit dem Programm Putty erhalte ich was vom Server. Leider kann das nicht entziffern aber haupsache der Server steht und man kann auch empfangen was dieser sendet.

D.h. Server und Client sehen sich, aber Sie können die Daten die empfangen (falls sie überhaupt was empfangen) nicht richtig weiterverarbeiten.

Ich habe mir eine Record Variable erstellt die verschiedene Variablen beinhaltet. Versenden tue ich diese mit SendBuf. Mit einem anderem Chat Programm klappt es, ich habe auch mal den Code von dem anderen Chat programm kopiert und ersetzt, hat aber auch nicht geklappt ;(

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

5

18.01.2009, 11:06

Ich kenne mich mit Delphi nicht aus. Hast du deinen Code mit dem aus Tutorials, etc verglichen?

6

18.01.2009, 13:03

Hab jetzt nochmal das ganze Programm nach einem Tutorial geschrieben, Server-Client Verbindung steht da ja keine Fehlermeldung mehr kommt. Aber wenn sich ein Client an den Server verbindent, kommt keine Nachricht beim Server.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.ServerSocket1ClientConnect (Sender: TObject; Socket: TCustomWinSocket);
var Nachricht: TChatNachricht;
    var I: Integer;
begin
  Memo1.Lines.Add ('Status: Neuer user verbunden');

  Nachricht.nick := 'Server';
  Nachricht.state :='msg';
  Nachricht.chat := 'Willkommen am Chat-Server';
  Socket.SendBuf (Nachricht, SizeOf(Nachricht));

  with ServerSocket1.Socket do begin
    Nachricht.nick := 'Server';
    Nachricht.state :='msg';
    Nachricht.chat := 'Jetzt ' + IntToStr(ActiveConnections) + ' Teilnehmer';
    for I := 0 to ActiveConnections-2 do
      Connections[I].SendBuf (Nachricht, SizeOf(Nachricht))
  end; {with}

  Memo1.Lines.add ('New user connected');

end;


Diese Prozedur wird gar nicht aktiviert, da ja in der Memo-Box nix erscheint.


Beim Clien sollte diese Prozedur aktiviert werde:

Quellcode

1
2
3
4
procedure TForm1.ClientSocket1Connect (Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add ('Status: Verbindung wurde erfolgreich hergestellt');
end;


Das wird aber leider auch in der Memo-Box angezeigt. Wenn ich den Clienten nun ohne Server starte kommt sofort ein Fehler. Starte ich alles mit Server so kommt gar nichts -.-

Powerpaule

Treue Seele

Beiträge: 162

Wohnort: Berlin

Beruf: Softwareentwickler

  • Private Nachricht senden

7

19.01.2009, 15:12

Wo und wann verbindest du denn einen Clienten zum Server?

Werbeanzeige