めっきり寒くなりました・・・。
TIdUDPServerを使ってブロードキャストしました。
//--------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
IdUDPServer1.DefaultPort := 12345; // 適当なポート
IdUDPServer1.BroadcastEnabled := True;
IdUDPServer1.Active := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ArrByte :TArray<Byte>;
begin
ArrByte := TEncoding.Unicode.GetBytes('あいう');
IdUDPServer1.Broadcast(ArrByte,12345);
end;
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; AData: array of Byte; ABinding: TIdSocketHandle);
var
ArrByte :TBytes;
i,nLen :Integer;
StrTxt :String;
begin
//AData をTBytesに変換する方法がわからんから適当(^_^;)
nLen := Length(AData);
if nLen > 0 then
begin
SetLength(ArrByte,nLen);
for i := 0 to nLen-1 do ArrByte[i] := AData[i];
StrTxt := TEncoding.Unicode.GetString(ArrByte);
Memo1.Lines.Add(FormatDateTime('hh:nn:ss',Time) + ' ' + StrTxt);
end;
end;
//----------------------------------------------------------------
と、まあ適当なプログラムでさてどうだ。
PCは <A> <B> <C> の3台でお試し・・・
<C>でBroadcast <A><B><C>全てOnUDPRead発生
<B>でBroadcast <A><B><C>全てOnUDPRead発生
<A>でBroadcast <A>のみOnUDPRead発生 <B><C>は沈黙...
<A> Win7 SP1
<B> Win7
<C> WinXP SP3
う〜む、何でじゃ!?
今日はこればっかし。
私の心も寒くなりました。(;_;)
|