IdUDPClient1.Send的问题 来者有分

fbwt 2008-07-04 06:53:02

IdUDPClient1.Send('192.168.0.151',9880,'以送的内容');
为何点第二次发送时,就显示write of address 错误
...全文
163 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fbwt 2008-07-04
  • 打赏
  • 举报
回复
是呀!:)
XT_CDC_GHB 2008-07-04
  • 打赏
  • 举报
回复
ok
zzlingaaa 2008-07-04
  • 打赏
  • 举报
回复
点多少次都没出问题...-_-!!
发多台机器,这样不行吗,为什么要弄那么复杂?
var 
a:TIdUDPClient;
begin
a:= TIdUDPClient.Create(nil);
a.Send('192.168.0.151', 9880, '151');
a.Send('192.168.0.152', 9880, '152');
a.Free;
fbwt 2008-07-04
  • 打赏
  • 举报
回复
我这样设定,是为了
在向A机器发送信息后
还要向B机器发送信息!

procedure TfrmMain.Button3Click(Sender: TObject);
var
a:TIdUDPClient;
begin
a:= TIdUDPClient.Create(nil);
a.Active:=false;
a.Host:='192.168.0.151';
a.Port:=9880;
a.ReceiveTimeout:=500;
a.Active:=true;
a.Send('3 ¦文档.doc');

a.Active:=false;
a.Host:='192.168.0.152';
a.Port:=9880;
a.ReceiveTimeout:=500;
a.Active:=true;
a.Send('3 ¦文档.doc');


end;
fbwt 2008-07-04
  • 打赏
  • 举报
回复
procedure TfrmMain.Button3Click(Sender: TObject);
var
a:TIdUDPClient;
begin
a:= TIdUDPClient.Create(nil);
a.Active:=false;
a.Host:='192.168.0.151';
a.Port:=9880;
a.ReceiveTimeout:=500;
a.Active:=true;
a.Send('3|文档.doc');
delay(500);
a.Destroy;

end;

我第一次点击时,没有问题
第二次点击时,就出现了上面所述的错误!
JeffChung 2008-07-04
  • 打赏
  • 举报
回复
接分,帮顶
zzlingaaa 2008-07-04
  • 打赏
  • 举报
回复
其他地方的问题吧,多贴一点相关代码看看
shanxmxj 2008-07-04
  • 打赏
  • 举报
回复
顶一下吧!!!
股票,证券等,用这个来发布行情数据,刷刷的。 UDP通信的优势 速度比TCP快。 UDP通信的缺点 一旦UDP包过大的话,也能正常工作。只是优势就丢失了。 idUdpClient 主要用于发送udp请求,在接收udp响应的时候是同步的,所以一定要设置超时,否则的话程序容易死。 idUpdServer 即能用于发送udp数据包,也能用于接收udp数据包。但是设计的主要目的还是用于收到udp数据包之后给于反馈。 UDP包的大小问题 资料1:以太网的MTU是1500字节,IP包头占20个字节,UDP首部占8个字节,也就是说实际数据应该小于1472字节. 资料2:鉴于Internet上的标准MTU值为576字节,所以我建议在进行Internet的UDP编程时.最好将UDP的数据长度控件在548字节(576-8-20)以内. 测试结果: 0-548字节:会完美的展现UDP协议的优势(速度刷刷的)。 大于1472字节以后的话,也可以正常执行。你会见识到什么叫做不可靠的信道(经过测试90%以上还是成功的,只是速度慢了很多)。 数据包大于2K速度明显变慢了;数据包大于3K,成功率60%到80%;数据包大于4k,成功率20%以下。 结论: 1.UDP协议还是比较可靠的。使用它能充分挖掘速度的潜力。通常大部分请求和相应都在548以下,小部分请求超过548。 2.548字节,可以存储274个汉字呢。比手机短信都长。你传什么那么大? 3.尤其是双方都在修改数据,需要实施数据实时同步的时候。修改量都比较小,用udp再合适不过了。 客户端的阻塞式响应不太理想 可以采用的办法是双方都开UDP服务器来接受。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧