|
| UDP Relay / dist Fra : Wiljan |
Dato : 12-01-06 20:19 |
|
Hej
Jeg leder efter et eksempel på hvordan man laver en software der fungerer
som UDP relay./ distribution
Jeg har brug for at den PC der kører programmet lytter på f.eks port 1234.
Programmet skal der efter sende en UDP stream til f.eks fem andre IP adresse
alle på port 1234.
Nogen link eller foreslag?
Jeg har D7 + Indy + APRO
Hilsen Wiljan
| |
Finn Bindeballe (12-01-2006)
| Kommentar Fra : Finn Bindeballe |
Dato : 12-01-06 22:26 |
|
hep...
hvis det er et mindre netværk, kan du jo broadcaste....dvs sætte din
hostaddress til eks 10.0.0.255 - saa kan alle der heder noget med
10.0.0.xxx 'høre' hvad du siger...hvis de altsaa gider...
ellers skal du bruge multi-casst, og det kan godt være lidt bøvlet at ha
med at gøre...
/finn
| |
Wiljan (12-01-2006)
| Kommentar Fra : Wiljan |
Dato : 12-01-06 22:35 |
|
Hej
Jeg skal sende data til 5 unikke ip adresse over WAN så multicasr dur ikke.
Det skal være som UDP unicast.
Wiljan
"Finn Bindeballe" <ohno@galnet.dk> skrev i en meddelelse
news:43c6c874$0$15782$14726298@news.sunsite.dk...
> hep...
>
> hvis det er et mindre netværk, kan du jo broadcaste....dvs sætte din
> hostaddress til eks 10.0.0.255 - saa kan alle der heder noget med
> 10.0.0.xxx 'høre' hvad du siger...hvis de altsaa gider...
>
> ellers skal du bruge multi-casst, og det kan godt være lidt bøvlet at ha
> med at gøre...
>
> /finn
| |
Wiljan (15-01-2006)
| Kommentar Fra : Wiljan |
Dato : 15-01-06 14:05 |
|
Hej Igen
Nu har jeg fået det il at virke
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
begin
count := AData.Size;
if count > Length(Buffer) then begin
exit;
end
else
begin
AData.Read(Buffer, count);
IdUDPServer1.SendBuffer ('192.168.1.152',1234,buffer,count);
IdUDPServer1.SendBuffer ('192.168.1.151',1234,buffer,count);
// kan så være lige så mange destinationer som der ønskes
total_count:=total_count+count;
total_blocks:=total_blocks+1;
end;
end;
Der er dog et problem
Hvis jeg sætter en IP adresse ind ovenfor som ikke eksistere når programmet
startes så hanger det.
der imod kan jeg sagtens afbryde under en modtager under drift og tilslutte
den senere uden problemer.
Hvordan kan dette undgåes?
Skal jeg *pinge* alle de adresser jeg ønsker at sende til og kune sende til
dem der svarer tilbage?
Hilsen Wiljab
| |
|
|