procedure TForm1.MultiCastTest; var sndsock:TUDPBlockSocket; rcvsock:TUDPBlockSocket; SendTxt : string; RecTxt : string; label labelWait; begin bTimeElapsed := false; sndsock:=TUDPBlockSocket.Create; rcvsock:=TUDPBlockSocket.Create; sndSockErrorCode := 0; rcvSockErrorCode := 0; memoMessages.Text := memoMessages.Text + 'Socketek megnyitása...' + #13#10; try rcvsock.createsocket; {rcvsock.Bind('0.0.0.0','9600');} rcvsock.Bind('192.168.250.4','9600'); {rcvsock.connect('192.168.250.4','9600');} {rcvsock.AddMulticast('192.168.250.4');} {rcvsock.MulticastTTL := 1; } rcvSockErrorCode := rcvsock.LastError; rcvSockErrorDesc := rcvsock.LastErrorDesc; if rcvsock.LastError <> 0 then exit; memoMessages.Text := memoMessages.Text + 'Olvasáshoz használt socket megnyitása sikeres.' + #13#10; sndsock.createsocket; sndsock.Bind('0.0.0.0','0'); {sndsock.MulticastTTL := 1; } sndsock.connect('192.168.250.4','9600'); sndSockErrorCode := sndsock.LastError; sndSockErrorDesc := sndsock.LastErrorDesc; if sndsock.LastError <> 0 then exit; memoMessages.Text := memoMessages.Text + 'Íráshoz használt socket megnyitása sikeres.' + #13#10; {sndsock.SendString('Test Payload');} SendTxt := (#$80) {ICF} + (#$00) {RSV} +(#$02) {GCT} +(#$00) {DNA} + (#$04) {DA1} + (#$00) {DA2} + (#$00) {SNA} + (#$34) {SA1} + (#$10){(#$00)} {SA2} + (#$ea) {SID} + (#$01#$02){memória írás} + (#$82){DM területre} + (#$00#$c8#$00){200-as címtől} + (#$00#$03){ennyi elemet/szót} + (#$ff#$fa){adatszó 0} + (#$fe#$aa){adatszó 1} + (#$01#$23){adatszó 2} ; sndsock.SendString(SendTxt); {varakozunk a válasz megérkezésére} Timer_1s.Enabled := true; labelWait: Application.Processmessages; If not bTimeElapsed then goto labelWait; RecTxt := rcvsock.RecvPacket(100); {RecTxt := rcvsock.LineBuffer; } memoMessages.Text := memoMessages.Text + 'Fogadott byte-ok száma:' + IntToStr(length(RecTxt))+ #10#13 + 'Adatok: ' + RecTxt + #13#10; sndsock.CloseSocket; rcvsock.CloseSocket; finally sndsock.free; rcvsock.free; end; end;