Autor Beitrag
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 22.09.06 00:44 
Moin!

Es gibt eine neue Version: V4.00-Milestone-Edition- vom 22.09.2006!

Es ist fast alles neu! ;) Da dieses Tutorial sich konkret an Anfänger in Sachen Netzwerk richtet, waren die Vorgängerversionen (leider :() schon mit viel zu viel Detailproblemen und deren ausufernden Lösungen vollgestopft. Das hatte natürlich den gegenteiligen Effekt, wie beabsichtigt: Abschreckung, statt leicher Einstieg. :D Deshalb wieder back-to-the-roots, nur das notwendigste in Kürze, aber mit Würze! ;) Also, wer bisher von den Vorgängerversionen eher abgeschreckt war, sollte nochmal reinschauen, das ganze Thema ist jetzt sehr viel einfacher präsentiert und garantiert einen weiteren Blick wert! :zwinker:

Für die schon etwas fortgeschritteneren Leser, die jetzt spezielle Themen (wie den Binärdatentransfer) vermissen: Es geht nichts aus den Vorgängerversionen verloren, ich werde die jetzt fehlenden Teile im zweiten Teil - ebenfalls in verbesserter Form - wieder präsentieren. Noch etwas Geduld, bitte. ;)

Details und Download - wie immer - im ersten Beitrag des Threads.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Do 19.10.06 23:43, insgesamt 1-mal bearbeitet
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 13.10.06 14:01 
Moin!

Der angekündigte, 2. Teil des Tutorials ist jetzt fertig. ;)

Viel Erfolg damit. :D

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
freddiiii
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 24.10.06 08:43 
Hervorangendes Tutorial :)
Hat bisher gut bei meinen Anfängerproblemen geholfen un wird auch nochn paar offene Fragen klären denk ich mal!
Einfach top..
Und hingegen vieler anderen Leute is Narses auch noch sehr hilfsbereit gegenüber Anfängern die weitergehende Fragen haben oder Tips brauchn :)

fred
-Pl-
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22

Win XP, Win Vista
Delphi 7
BeitragVerfasst: Di 30.01.07 14:19 
Da hammer den Thread ja .. ;-)

Einfach super Tutorial ! Habe jetzt auch nochmal die neue Version durchgelesen, frei nach dem Motto, doppelt hält besser und kann das Tutorial einfach nur weiterempfehlen. Vorallem für diejenigen unter euch die noch nicht so die Erfahrung mit Internet/LAN bei Delphi haben. Super Einführung und Erklärung und man kann selber immernoch sehr gut drauf aufbauen und sich neue Dinge dazu überlegen, nicht zuletzt durch die immer wieder eingefügten Denkanstöße in diese Richtung.

Nochmal vielen Dank Narses !
catweasel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: Mi 16.05.07 15:43 
Hi,

wow. Wirklich tolles tut...
Mir is nur auf die schnelle ein kleiner Typo aufgefallen....
Auf Seite 35 bei Punkt b heisst es : ... ist keiner als die eigene....
... muesste heissen ... "ist kleiner als die eigene".

also nix fuer ungut.. ;-)
Catweasel

_________________
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Sa 19.05.07 22:39 
Moin!

user profile iconcatweasel hat folgendes geschrieben:
wow. Wirklich tolles tut

Danke. :D

user profile iconcatweasel hat folgendes geschrieben:
ein kleiner Typo aufgefallen

Habe ich schon korrigiert, aber dafür lohnt (noch) kein Update; trotzdem Danke für den Hinweis. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Hendi48
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271



BeitragVerfasst: Do 21.06.07 20:57 
kann man auch irgendwie den server in der Userliste anzeigen lassen? Also mein Server heißt nich system sondern ich kann einen namen eingeben (edit1). Wenn ich unter
ausblenden Delphi-Quelltext
1:
Clients.AddItem(Socket.RemoteHost,Socket); // in die Liste					

ausblenden Delphi-Quelltext
1:
Clients.AddItem(edit1.text,Socket); // in die Liste					

tu, bekomm ich ne access violation und im client kommt alles doppelt
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 21.06.07 22:20 
Moin!

user profile iconHendi48 hat folgendes geschrieben:
kann man auch irgendwie den server in der Userliste anzeigen lassen?

Grundsätzlich kann man eine ganze Menge machen, die Frage ist, wieviel Aufwand das ist. :zwinker: Aber um die Frage kurz zu beantworten: nein, das geht nicht so ohne weiteres. :| (jedenfalls nicht, ohne den Rahmen des Tutorials oder auch nur eines Beitrags hier zu sprengen)

Der Server ist eben kein Client und hat als solcher nix in der Client-Liste zu suchen; das ist bei anderen Chat-Systemen ja auch nicht anders, oder steht bei dir der ICQ-Server mit in der Kontaktliste... 8) :mahn:

user profile iconHendi48 hat folgendes geschrieben:
Also mein Server heißt nich system sondern ich kann einen namen eingeben (edit1). Wenn ich unter
ausblenden Delphi-Quelltext
1:
Clients.AddItem(Socket.RemoteHost,Socket); // in die Liste					

ausblenden Delphi-Quelltext
1:
Clients.AddItem(edit1.text,Socket); // in die Liste					

tu, bekomm ich ne access violation und im client kommt alles doppelt

Das ist ja auch "falsch" (Server ist kein Client und hat in der Liste nix zu suchen), deshalb gibt´s hier korrekterweise Fehlermeldungen. :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Hendi48
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 271



BeitragVerfasst: Do 21.06.07 23:07 
ok stimmt, jetz wo dus sagst :oops:
Egal dann geh ich eben auch als Client rein :wink:
jackle32
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 7

Win7
Delphi XE5 Starter, RAD Studio XE7 Pro
BeitragVerfasst: Fr 17.08.07 23:54 
Hallo erst mal,

ich hab mal ein ganz grundsätzliche Frage zu den Sockets. Worin besteht jetzt genau der Unterschied zwischen den T-Socket und den TCP-Socket? Würde der Chat auch laufen wenn ich jetzt einen TCP-Socket her nehm, den den gleichen Namen gebe (also z.B. "ClientSocket1")? Soll heißen sind die Befehle idtentisch oder anders und wenn sich die Sockets unterscheiden, wann nehm ich welchen für was? Zumal ich irgendwo gelesen hab, dass die T-Sockets von Borland als "bugy" eingestuft werden.

Hoffe ich bin im richten Thread und auf baldige Antwort

Gruß

Jack
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 20.08.07 00:12 
Moin!

user profile iconjackle32 hat folgendes geschrieben:
Worin besteht jetzt genau der Unterschied zwischen den T-Socket und den TCP-Socket?

Es sind gänzlich unterschiedliche Komponenten, näheres verrät dir die Delphi-Online-Hilfe. :les: ;)

user profile iconjackle32 hat folgendes geschrieben:
Würde der Chat auch laufen wenn ich jetzt einen TCP-Socket her nehm

Nein (unter der Annahme, dass du für TClientSocket einen TTCPClient verwenden möchtest).

user profile iconjackle32 hat folgendes geschrieben:
wenn sich die Sockets unterscheiden, wann nehm ich welchen für was?

Das mußt du selbst entscheiden, indem du dir beide Komponenten mal intensiv anschaust; ich kann dir dabei leider nicht helfen. :?

user profile iconjackle32 hat folgendes geschrieben:
Zumal ich irgendwo gelesen hab, dass die T-Sockets von Borland als "bugy" eingestuft werden.

Die Socket-Kompos sind etwa genau so bugy, die andere WSA-API-Wrapper auch; man muss sie halt zu nehmen wissen. :) Sie sind zugegeben "veraltet" (was auch immer das nun genau bedeuten mag :nixweiss:) und bieten keine höhere (Standard-)Protokollunterstützung, wie z.B. die Indy-Komponenten. Zum Einstieg (also zum Lernen) sind diese Komponenten allerdings relativ gut geeignet, weil man eben alles selbst machen muss und so auch viel lernen kann. :idea:

Weitere (Grundsatz-)Fragen (zu den Komponenten) aber bitte im Forum stellen; das hier ist die Library und speziell der Thread zu einem ganz konkreten Tutorial - und da hat diese Diskussion eigentlich nix zu suchen (gab übrigens auch schon ein paar Threads zu diesem Thema, einfach mal suchen); ich habe auch nur deshalb (hier) darauf geantwortet, weil du nach einer Ersatzmöglichkeit zum Einsatz im Chat gefragt hast.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
PeterPain
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 83



BeitragVerfasst: Fr 30.11.07 00:13 
Hi Narses!

Deine Tutorials sind ja mal mehr als genial. Auch wenn ich sie nicht benötige habe ich sie gerne gelesen und möchte gesagt haben, dass ein derartiges Engagement, und das auch noch für lau (oder bezahlt man dich dafür?) wirklich mehr als Vorbildich ist! Weiter so :)

Gaanz grosses Kino!

Viele grüsse, peter
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 30.11.07 00:32 
Moin!

user profile iconPeterPain hat folgendes geschrieben:
Deine Tutorials sind ja mal mehr als genial.
Vielen Dank! :D

user profile iconPeterPain hat folgendes geschrieben:
oder bezahlt man dich dafür?
Das tut man zwar, aber nicht hierfür. :rofl: Ich habe die Tutorials natürlich nicht ausschließlich für´s Forum geschrieben, da gab´s auch noch andere Gründe... ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
morvister
Hält's aus hier
Beiträge: 15

XP
Delphi 2005 Prof.
BeitragVerfasst: Do 31.07.08 23:32 
Titel: Meldung im Server-Protokoll: <NICK> hat sich angemeldet
Hallo Narses,

Ich bin relativ unbedarft was Delphi angeht, mit Programmierung an sich kenne ich mich aber aus, leider kaum mit der OOP. Soviel zu meinem Kenntnisstand. Ich interessiere mich für die Techniken, ein netzwerkfähiges Spiel mit relativ geringem Datentransfer zu erstellen und habe mich daher mit Freuden auf dieses wirklich hervorragende Tutorial gestürzt.

Die Chat-Anwendung läuft soweit und ich denke, ich habe das meiste im Großen und Ganzen verstanden. Lediglich das Zusammenspiel der TCmdToken- und der Syntax-Komponente bereiten mir noch etwas Probleme was das Verständnis angeht. Liegt vermutlich an mangelnder Kenntnis über Delphi und seiner Syntax.

Meine eigentliche Frage aber dreht sich um die Nicknamen. Ich wollte ein wenig herumprobieren und hatte die Idee, beim Verbinden eines Clients mit dem Server ins Protokoll des Servers so etwas wie "Neuer Client verbunden: <NICK>" auszugeben.
Meiner Meinung gehört das in die "OnClientConnect"-Methode der Server-Socket-Komponente.

Mein 1. Versuch war das hier:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   Clients.AddItem(Socket.RemoteHost,Socket);                     //in die Liste
   ReceiveBuffer.Add('');                                         //zugehörigen Empfangspuffer anlegen
   Log.Lines.Add('Neuer Client verbunden: '+ Socket.RemoteHost);  //Meldung im Server-Protokoll
   SendUserList;
end;
Die Meldung wurde erzeugt, allerdings mit 'localhost' und nicht dem Nicknamen, wie ich es vermutet hatte. Eigentlich ist das auch sehr verständlich, aber ich frage mich, wie du es dann geschafft hast, mit dem 1. Befehl der Procedure den NICK in die Client-Liste einzutragen, wenn in Socket.RemoteHost 'localhost' steht, und nicht etwa der Nick.

Nach diesem Fehlschlag habe ich mich entschlossen, direkt auf die ListBox zu gehen.

Ein Versuch mit der Log.Lines.Add-Zeile wie oben, nur statt Socket.RemoteHost dann
ausblenden Delphi-Quelltext
1:
Clients.Items.Strings[Clients.Items.Count-1]);					


Ein weiterer Versuch mit Clients.Items.Strings[Clients.Items.IndexOfObject(Socket)]) statt Socket.Remote in derselben
Zeile.

Immer kommt dabei raus: "localhost"

Aber, wenn selbst in der Liste "localhost" statt des Nicknamens steht, wieso werden dann die Nicks angezeigt?

Mein Programm sieht exakt so aus, wie es gemäß Deines Tutorials aussehen müsste. Ich habe es inkl. des Änderns des Nicks mittels BtnSetNick erfolgreich durchgearbeitet. Da kam mir dann die Idee mit dieser Meldung.

Kannst Du mir helfen?

Sorrry der Quellcode ist etwas unübersichtlich. Ich bin neu hier und hab keine Ahnung, wie man die Quelltexte IDE-konform hier hinein bekommt.

Gruß
morvi

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 31.07.08 23:55 
Titel: Re: Meldung im Server-Protokoll: <NICK> hat sich angemeldet
Moin und :welcome: im Forum!

user profile iconmorvister hat folgendes geschrieben:
Meine eigentliche Frage aber dreht sich um die Nicknamen. Ich wollte ein wenig herumprobieren und hatte die Idee, beim Verbinden eines Clients mit dem Server ins Protokoll des Servers so etwas wie "Neuer Client verbunden: <NICK>" auszugeben.
Meiner Meinung gehört das in die "OnClientConnect"-Methode der Server-Socket-Komponente.
Grundsätzlich gehörte es wohl vielleicht da hinein, allerdings steht zu diesem Zeitpunkt der Nickname des neuen Clients ja noch gar nicht fest. :idea:

user profile iconmorvister hat folgendes geschrieben:
Mein 1. Versuch war das hier:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   Clients.AddItem(Socket.RemoteHost,Socket);                     //in die Liste
   ReceiveBuffer.Add('');                                         //zugehörigen Empfangspuffer anlegen
   Log.Lines.Add('Neuer Client verbunden: '+ Socket.RemoteHost);  //Meldung im Server-Protokoll
   SendUserList;
end;
Die Meldung wurde erzeugt, allerdings mit 'localhost' und nicht dem Nicknamen
Zur Klärung: mit Socket.RemoteHost bekommst du den Hostnamen der Gegenstelle, wenn der Server und der Client auf der gleichen Maschine laufen, also korrekterweise 'localhost'.

user profile iconmorvister hat folgendes geschrieben:
ich frage mich, wie du es dann geschafft hast, mit dem 1. Befehl der Procedure den NICK in die Client-Liste einzutragen, wenn in Socket.RemoteHost 'localhost' steht, und nicht etwa der Nick.
Des Rätsels Lösung ist hier im Client-Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
// Befehle ausführen; die notwendige Anzahl Argumente ist garantiert
procedure TForm1.Execute(const Command: TCmdToken; Data: TStringList);
  var
    i: Integer;
begin
  case Command of // Befehle fallunterscheiden:
    //...
    cmdVER: // Erweiterung 4: Protokoll-Version des Servers auswerten
      // ist das ein Narses-Chat-Server? (will ich mit dem reden?)
      if (Data.Strings[1] = SRV_APP_ID) then // ja
        // passende Protokoll-Version? (kann ich mit dem reden?)
        if (Data.Strings[2] = PROTO_VER) then begin // ja
          // der Server ist OK; im Log vermerken und Nickname senden
          Log.Lines.Add(Data.Strings[1]+', PV: '+Data.Strings[2]+'.'+Data.Strings[3]);
          ClientSocket1.Socket.SendText(Syntax[cmdNICK].Text+#13+Nickname.Text+#13);
Der Nickname wird als "Antwort" auf die Versionskennung des Servers gesendet (das Ganze ist Teil der Connect-Ereigniskette). :idea:

user profile iconmorvister hat folgendes geschrieben:
Immer kommt dabei raus: "localhost"
Ich denke, dir sollte jetzt klar werden, warum. ;)

user profile iconmorvister hat folgendes geschrieben:
Ich bin neu hier und hab keine Ahnung, wie man die Quelltexte IDE-konform hier hinein bekommt.
Markiere einfach den entsprechenden Abschnitt/Quelltext im Editor und klicke dann auf das '+'-Zeichen neben dem "Delphi" in der Combobox für den Syntaxhighlighter.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
morvister
Hält's aus hier
Beiträge: 15

XP
Delphi 2005 Prof.
BeitragVerfasst: Fr 01.08.08 00:49 
Zunächst mal vielen Dank für die schnelle Antwort :-)

Ich habe die Protokoll-VersionsPrüfung bei mir noch gar nicht eingebaut. Ich habe das Tutorial erst bis 4.2 "ändern des Nicknamen im Betrieb" durchgearbeitet und auf dem Stand sieht die OnClientconnect-Prozedur (ohne meine Sonderlocke mit der Meldung übre neue Verbindung, daher auskommentiert quasi so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   Clients.AddItem(Socket.RemoteHost,Socket);   //in die Liste
   ReceiveBuffer.Add(''); //zugehörigen Empfangspuffer anlegen
   // <- Hier wollte ich die Log.Lines.Add-Anweisung einbauen, wie folgt:
   //Log.Lines.Add('Neuer Client verbunden: '+
      Clients.Items.Strings[Clients.Items.Count-1]);

   SendUserList;   //User-Liste an alle Clients senden
end;


Ich bin nun aufgrund des Aufrufs von SendUserList am Ende der Procedure davon ausgegangen, dass die User-Liste zu diesem Zeitpunkt schon aktuell sein muss, und zwar durch Clients.AddItem(Socket.RemoteHost.Socket) sonst würds ja nix bringen, sie durch den Äther zu jagen :)

Ich hab sicher irgendwo nen Denkfehler oder ich habe die Reihenfolge der Ereignisse noch nicht aufm Schirm...Ich habs so verstanden, dass das OnConnect-Ereignis auf der Client-Seite, welches in meinem Fall so aussieht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
//Verbindung zum Server ist aufgebaut und bereit zum Senden/Empfangen
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   ReceiveBuffer := '';    //Empfangspuffer initialisieren
   ConnectionState := mcsOnline;   //Buttons anpassen
   Log.Clear;
   Log.Lines.Add('Verbunden mit: '+ClientSocket1.Socket.RemoteHost);
   Socket.SendText('NICK'+#13+Nickname.Text+#13); //noch den eigenen Nick senden
end;


das OnClientConnectEreignis auf der Server-Seite auslöst. Wenn dem so wäre, wäre die Info über den Nicknamen auf der Servcerseite vorhanden. Und vorhanden muss sie ja auch sein, wegen des Aufrufs von  SendUserList :gruebel:

Kannst Du mir helfen, den Knoten zu lösen?
Gruß
morvi
Narses Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Fr 01.08.08 01:01 
Moin!

user profile iconmorvister hat folgendes geschrieben:
Ich habe die Protokoll-VersionsPrüfung bei mir noch gar nicht eingebaut.
OK, ich hab einfach mal den letzten Code-Checkpoint genommen, weil du angedeutet hast, das Tut fertig zu haben. :nixweiss:

user profile iconmorvister hat folgendes geschrieben:
Ich bin nun aufgrund des Aufrufs von SendUserList am Ende der Procedure davon ausgegangen, dass die User-Liste zu diesem Zeitpunkt schon aktuell sein muss, und zwar durch Clients.AddItem(Socket.RemoteHost.Socket) sonst würds ja nix bringen, sie durch den Äther zu jagen
Nein, die Userliste enthält hier noch nicht den Nicknamen und nochmal nein, es bringt eine aktuelle Userliste, allerdings noch ohne den korrekten Nicknamen. ;)

user profile iconmorvister hat folgendes geschrieben:
ich habe die Reihenfolge der Ereignisse noch nicht aufm Schirm...
Wer auch immer welches Ereignis im TCP-Connecting triggert, der Nickname kommt auf jeden Fall erst im OnReceive rein und wird demzufolge im Execute-Ereignis verarbeitet. :idea:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
morvister
Hält's aus hier
Beiträge: 15

XP
Delphi 2005 Prof.
BeitragVerfasst: Fr 01.08.08 06:51 
Moin

Danke, ich denke, diese Aussagen waren zum "Knoten lösen" geeignet :wink:

Und sorry für meine irreführenden Aussagen bzgl. des Stands Deines Tuts bei mir...es war wohl schon etwas zu spät :oops:

Besten Dank nochmal
Stinger47
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 102



BeitragVerfasst: Do 20.08.09 14:07 
Heyho,
auch von mir erstmal ein großes lob an das tut...für einen einsteiger wie mich in dieser matherie wirklich verständlich geschrieben...:)
aber irgendetwas will bei mir einfach nicht funktionieren :bawling:
habe das tut bis zu CC2 durchgearbeitet und soweit alles verstanden nochmal selber nachprogrammiert ohne pdf...
aber eins will einfach nicht
wenn ich mich mit dem client verbinde erscheinen in dem log nur chinesische! zeichen
beim text senden sowohl vom server als auch vom client kommt nur die fehlermeldung "unbekanntest kommando: [wieder chinesische zeichen]"
die userliste wird nicht aktualisiert wieder nur chinesische murks
bei den fertig kompilierten exe-dateien funktioniert es...
compiliere ich deinen code aber neu kommt dort der selbe fehler wie bei mir...
liegt es an meinem delphi?
habe letzten von einem bekannten delphi 2009 bekommen...
habe vista 64 bit
liegt es am delphi?..windows? :?!?:

Grüßle
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Do 20.08.09 14:11 
Narses arbeitet mit AnsiStrings (in früheren Versionen String); seit D2009 wird für String standardmäßig WideString genommen. Änder alle Vorkommen von String nach AnsiString und probier das nochma ... Ansonsten mal kurzen Source online stellen.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.