当前位置:主页>仓库管理软件> 列表

IdUDPClient发送数据时好象是随机的,我想知道刚才 找速达软件大管家

记账软件版1楼: IdUDPClient发送数据后,我想使用它的发送端口作为IdUDPServer的接收端口,可是我怎么知道刚才发送时使用的是哪个端口号啊?

我使用IdUDPClient1.Binding.Port:=6000;可是我在接收端ABinding.PeerPort扑捉,发先就不是6000,而是1221,客户端和服务端在同一个电脑上.

2楼: 不靠接收端,仅靠发送端恐怕无法获得发送数据的端口。
根据Send方法一直往下追踪,到最后都没有出现过发送端口。 如速达软件大管家

3楼: 如果靠接收端的话,那在公网上经过端口变换后,也是没有办法获取到真实的发送端口的啊

4楼: 用IDUDPServer来发数据就好了嘛。

5楼: 指定发送端口用下面的方法
//发送UDP数据
procedure TForm1.SendButtonClick(Sender: TObject);
var ss:string;
begin
ss:=Memo1.Text;
IdUDPClient1.Active:=false; //设置UDP发送IP和PORT
IdUDPClient1.Port:=SpinEdit1.Value; //目标接收端口
IdUDPClient1.Binding.Port:=SpinEdit2.Value;//本机发送端口
IdUDPClient1.Host:=Edit1.Text;//目标IP地址
IdUDPClient1.Binding.Bind;//绑定
IdUDPClient1.Active:=true;
Idudpclient1.Send(ss);
IdUDPClient1.Active:=false;
end;

6楼: 谢谢
liyinwei,东兰梦舞