Einzelnen Beitrag anzeigen

Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#3

Re: Deutsches Tutorial für ICS

  Alt 25. Apr 2006, 13:35
*Thread ausbuddel*

Ist zwar bestimmt schon zu spät, aber naja
Ich beschäftige mich gerade selber mit den ICS.

im OnDataAvailable liest du am besten so:
Delphi-Quellcode:
procedure TFormMain.WSocketUDPServerDataAvailable(Sender: TObject;
  ErrCode: Word);
var Buffer: array [0..1023] of char;
    Len: Integer;
    Src: TSockAddrIn;
    SrcLen: Integer;
    Data: string;
begin
  SrcLen := SizeOf(Src);
  Len := WSocketUDPServer.ReceiveFrom(@Buffer, SizeOf(Buffer), Src, SrcLen);
  if Len >= 0 then begin
    Buffer[Len] := #0;
    
    Data := StrPas(Buffer);
    // mache was mit Data
  end;
end;
So funktionierst zumindest bei mir (den Buffer kannst du ja anpassen).

Eine Alternative wäre, am Server auf LineMode := true zu schalten.
Dann kommt pro OnDataAvailable-Event genau eine Zeile an - sprich, solange
du kein #13#10 sendest, wird kein OnDataAvailable ausgelöst.
Dann müsste auch ReceiverStr funktionieren (glaub ich zumindest).
Wichtig ist, dass du auch einen Linien-Begrenzer mitschickst
(Server-Eigenschaft LineEnd, default #13#10) - dazu einfach SendStr(Edit1.Text+#13#10); verwenden.
Manuel
  Mit Zitat antworten Zitat