Thema: Delphi irc + clientsocket

Einzelnen Beitrag anzeigen

Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#10

Re: irc + clientsocket

  Alt 16. Mai 2006, 13:44
Hi,

Zitat von mr.unbekannt:
wieder mal ich!

habe das mit ping udn pong probiert.
Delphi-Quellcode:
procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
var text:string;
begin
memo1.Lines.Add(socket.ReceiveText);
if copy(socket.ReceiveText,1,4)='PINGthen begin
text:=socket.ReceiveText;
delete(text,1,pos(':',text));
ClientSocket1.Socket.SendText('PONG :'+text+#13#10);
memo1.Lines.Add('PONG :'+text+#13#10);
end;

end;
der sendet aber kein pong!
Bist du sicher, dass er das nicht sendet? Du bekommst vom Server darauf keine Antwort, sondern er "lässt dich dann rein".

Außerdem sendest du was falsches: Du empfängst dreimal Text (Zugriff auf socket.Receivetext), aber die Nachricht ist ja in einem Stück... Also so müsste es aussehen:
Delphi-Quellcode:
var text:string;
begin
text:=socket.ReceiveText;
Memo1.Lines.Add('Empfangen: "'+text+'"');
if (lowercase(copy(text,1,4)) = 'ping') then begin
  // Hab die Parameter von delete() nicht ganz im Kopf, aber müsste es nicht Pos(':',text)+1 sein, wenn du nachher nochmal : vornedranstellst?
  Delete(text,1,Pos(':',text)+1);
  socket.SendText('PONG :'+text+#13#10);
  Memo1.Lines.Add('Gesendet: PONG :'+text+#13#10);
end;
end;
cu
  Mit Zitat antworten Zitat