Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Zuverlässiger UDP Client gesucht

  Alt 7. Apr 2010, 10:15
Wie sieht es aus? Schon eine Lösung gefunden?

Im Anhang ist mal eine an das Problem angepasste Unit.

Kann man wie folgt einsetzen:
Delphi-Quellcode:
FUDPSocketThread:=TUDPSocketThread.Create(True);
FUDPSocketThread.IP:='127.0.0.1';
FUDPsocketThread.Port:=21000;
FUDPSocketThread.SendData:='Hello World';

//je nach Ereignis, welches man mitbekommen will
FUDPSocketThread.OnSocketMessage:=SocketMessage;
FUDPSocketThread.OnUDPMessage:=UDPMessage; //evtl. rauslassen, weil es zu viel Zeit beansprucht
FUDPSocketThread.EventHandle:=Handle;
FUDPSocketThread.Resume;
Und die Ereignisbehandlungen:
Delphi-Quellcode:
//für EventHandle
procedure TForm1.CMUDP(var Msg: TMessage); //message CM_UDP
var i:Integer;
begin
  memo1.lines.add('UDP-Event');
  memo1.lines.add('------------------------------------------');
  for i:=0 to FUDPSocketThread.ReceivedMessages.Count-1 do
  begin
    memo1.lines.Add(FUDPSocketThread.ReceivedMessages[0]);
    FUDPSocketThread.ReceivedMessages.Delete(0);
  end;
  memo1.lines.add('------------------------------------------');
end;

procedure TForm1.SocketMessage(Sender: TObject; aMessage: string);
begin
  Memo1.Lines.Add('Socket: '+aMessage);
end;

procedure TForm1.UDPMessage(Sender: TObject; aMessage: string);
begin
  Memo1.lines.add('UDP: '+aMessage);
end;
Thread Beenden natürlich nicht vergessen.
Angehängte Dateien
Dateityp: pas udpthread_723.pas (8,3 KB, 55x aufgerufen)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat