H
happytimes_dsq
Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序想和对方的一个C#的程序进行数据交换.用UDP协议,对方将数据通过写入MemoryStream广播出来.数据是定长的.
1.我想把它收下来显示出来.但是不行,我是按照delphi自带的例子copy的.为什么不行呢?
2.是不是对方广播只要指定端口,而我只要设置对应的端口,就可以对其收数据了吧,不需要它指定我的IP吗?因为对方就是直接对端口值为2000进行广播.并没指定我的IP.如果是的话,我要怎么做才能收到呢?
3.是不是对方是C#程序,我这边要做调整或是控件不好用要用别的呢?
例子中,自己收发就没有问题!
代码是这样的,其实大家都知道,还是贴出来吧!
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
MyStream: TMemoryStream;
TmpStr: String;
begin
MyStream := TMemoryStream.Create;
try
NMUDP1.ReadStream(MyStream);
SetLength(TmpStr,NumberBytes);
MyStream.Read(TmpStr[1],NumberBytes);
Memo1.Lines.Add(TmpStr);
finally
MyStream.Free;
end;
end;
end.
1.我想把它收下来显示出来.但是不行,我是按照delphi自带的例子copy的.为什么不行呢?
2.是不是对方广播只要指定端口,而我只要设置对应的端口,就可以对其收数据了吧,不需要它指定我的IP吗?因为对方就是直接对端口值为2000进行广播.并没指定我的IP.如果是的话,我要怎么做才能收到呢?
3.是不是对方是C#程序,我这边要做调整或是控件不好用要用别的呢?
例子中,自己收发就没有问题!
代码是这样的,其实大家都知道,还是贴出来吧!
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
MyStream: TMemoryStream;
TmpStr: String;
begin
MyStream := TMemoryStream.Create;
try
NMUDP1.ReadStream(MyStream);
SetLength(TmpStr,NumberBytes);
MyStream.Read(TmpStr[1],NumberBytes);
Memo1.Lines.Add(TmpStr);
finally
MyStream.Free;
end;
end;
end.