Einzelnen Beitrag anzeigen

tobster

Registriert seit: 19. Sep 2003
Ort: Schmalkalden
92 Beiträge
 
Delphi XE Starter
 
#24

Re: Client-Server-Kommunikation im LAN

  Alt 5. Mär 2004, 15:02
Zitat von Schubi:
Senderseite:
Delphi-Quellcode:
    
    WSocket.Addr := '10.1.1.255';
Versuch mal die 255.255.255.255, die ich dir schon gepostet hatte. So funktionierts hier zumindestens.

Zitat von Schubi:
Aber die Daten kommen in Etappen wenn mich nicht alles täuscht?!
Wie bastle ich die zusammen?
Es gibt diverse Beispiele, wo das schon drin steht. Ich suchs mal eben:

Delphi-Quellcode:
var RcvBuf: array [0..1023] of char;
    RcvLen: integer;

procedure TForm1.wsServerDataAvailable(Sender: TObject; Error: Word);
var Len,i: Integer;
    Source: TSockAddrIn;
begin
 { Receive the data that has arrived, put it after the data already here }
 Len := sizeof(Source);
 Len := wsServer.ReceiveFrom(@RcvBuf[RcvLen],SizeOf(RcvBuf)-RcvLen-1,Source,Len);
 if Len <= 0 then Exit;
 RcvLen := RcvLen + Len;
 RcvBuf[RcvLen] := #0;
 while TRUE do begin
  i := StrScan(@RcvBuf, #10) - RcvBuf;
  if i < 0 then break;
  RcvBuf[i] := #0;
  //Communication(StrPas(RcvBuf),StrPas(inet_ntoa(Source.sin_addr)));
  RcvBuf[i] := #10;
  if i >= (RcvLen-1) then begin
   RcvLen := 0;
   break;
  end;
  { Not the last line, move the next one in front of buffer }
  Move(RcvBuf[i+1],RcvBuf,RcvLen-I);
  RcvLen := RcvLen-i-1;
 end;
end;
Frei modifiziert nach dem Ereignis das im Beispiel UDPLSTN definiert ist, was ich auch schon geschrieben hatte.
Ciao
  Mit Zitat antworten Zitat