关于idUdp控件接收数据的问题(100分)

  • 主题发起人 主题发起人 liunini
  • 开始时间 开始时间
L

liunini

Unregistered / Unconfirmed
GUEST, unregistred user!
由于idUdpclient没有 read事件 所以我在客户端 放了两个:idClient和idser
让 idserver来负责接收服务器发来的信息。服务器我也放了两个:idClient和idserver
他们的设置如下:
客户端:
idClient.Host:=SERVER_IP; idClient.Port:=SERVER_PORT; idClient.Active:=True;
Server_Udp.DefaultPort:=Client_PORT; Server_Udp.Active:=True;
发送信息格式:idClient.SendBuffer(FSendStream.Memory^,FSendStream.Size);
服务器端:
Client_Udp.Port:=CLIENT_PORT;client_udp.Active:=True; Server_Udp.DefaultPort:=SERVER_PORT; Server_Udp.Active:=True;
发送信息格式:
Client_udp.SendBuffer(Abinding.PeerIP,CLIENT_PORT,FSendStream.Memory^,FSendStream.Size);
现在的问题是 服务器发了信息后 我的客户端 没有触发READ事件 也就是说没有收到消息
这是怎么回事?
 
忘了说了 在一台机子上 这段代码是正确的 客户端 的READ事件触发了
但是将 服务器的程序放到远程的一台机子上 就不行 到底是怎么回事?[:(]
[red][yellow]急.........[/yellow][/red]
 
我很着急
请大家多多帮忙!
 
我覺得, 你要傳送的比較比較簡單, 所以, 可以考慮用
TcpClient1, TcpServer1, 在控制面板的 internet中, 功能強大應該是 indy那一組, 但indy那些控件要操作些線程的東西, 雖然已經做得很簡單, 但還是麻煩一點!

另外, 如果你想保證可靠傳輸, 你應該用 tcp 組件, 用upd有可能接受不到的(而其實你的代碼是沒有問題的)



 
如果在本機測試沒問題, 可考慮是不是因為防火牆的問題, 或者你是跨網段傳輸問題的, 這些都可能會有影響!!
 
在Delphi6/7中利用UDP协议传送文件的例子
http://www.aidelphi.com/6to23/docu/MyUDP(Delphi6_7).rar
看一下这个例子对你有没有用呗
 
app2001:
我不是文件的接收问题 现在是 我的这段代码为什么在我一台机子上可以
在两台机子上 就行 只能发送不能接收
那位可以用这种方法试一试 如果可以 请将测试代码ldyhl_2002@21cn.com
或粘在这里。我也可以令给分
 
看看我的程序吧,可能对你有用:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2383933
 
發覺, UdpSocket1 很少人用, 而且delphi的幫助說明也很少, 不清楚!
注意要設為bmNonBlocking才可能有事件;
但現在為止事件還是沒有發生, 很奇怪!
 
研究过udpsocket后发现,localhost,localport没有作用
tudpsocket始终没有bind localhost,localport所以收不到
也很正常,即发出的数据不是从本地的localport发出的
我想可能是delphi的bug或者还有其他用法,
希望各位同仁参与讨论
up...............
 
后退
顶部