Autor Beitrag
satan
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 18.12.08 21:12 
servuß, bin neu hier, extra wegen dem angemeldet

bin noch nicht so gut in delphi, hab davor ein bisschen in cpp gecodet, aber da ich rad's so mag und delphi toll finde, code ich jetzt in delphi

chat programm, ganz simpel, eigentlich ganz einfach, nach einem bespiel gecodet...
aber: "Asynchroner Socket error 10061"
und "Listenindex überschreitet das maximum(0)"

was stimmt da nicht??
nachrichten werden auch keine übertragen, eig geht nichts...
hm...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Active := true;
ClientSocket1.Host := Edit2.Text;
Showmessage('Verbindung aufgebaut');
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
if ClientSocket1.Active then begin
ClientSocket1.Socket.SendText('Client: ' + Edit1.Text);
Memo1.Lines.Add('Client: ' + Edit1.Text);
end;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ClientSocket1.Active := false;
Application.Terminate;
end;


was mach ich falsch? das war der client, server ähnlich.
danke
mfG

Moderiert von user profile iconChristian S.: Quote- durch Delphi-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 18.12.08 21:22 
Hallo und :welcome: hier bei uns im Forum!

user profile iconsatan hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText);
end;
Du verbindest hier doch erst, was willst du an der Stelle denn schon mit ReceiveText? Du hast ja noch gar keinen Text empfangen. ;-)
Dafür gibt es das Ereignis OnRead für das Empfangen von Text.

Schau dir mal dieses Tutorial an, das macht genau was du vor hast und ist sehr gut erklärt:
www.delphi-library.de/topic_60744.html
satan Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 18.12.08 21:29 
on read? kenn ich nicht ^^
habe bis jetzt nur konsolenbasiert gecodet...

muss ich eine neue prozedur für das onread ereignis machen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 18.12.08 21:31 
Klick auf deinen ClientSocket und schau unter Ereignisse, dort steht das Ereignis. Dann klick dort doppelt auf OnRead.

Aber schau dir doch mal das Tutorial an, dort wird ja erklärt wie die Abläufe sind. Wenn du bisher konsolenbasiert programmiert hast, dann musst du umdenken von sequentiellem Abarbeiten von Befehlen auf ereignisorientiertes Vorgehen.