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)='PING' then 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