请问使用NMUDP控件时为什么不同数据不同时间传到同一个端口接收的数据会相同呢?(100分)

  • 主题发起人 主题发起人 阿曼
  • 开始时间 开始时间

阿曼

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用一个程序(a)发,另一个程序(b)收,
a的数据改后再发,b仍然收到原来数据未改的数据,为什么?
请问如何才能使它及时刷新?先谢了!
 
说得详细点
 
你是说
1)a发送数据'123456789',b接受数据到'123456789'
2)a修改数据为'234567890'
1)a发送数据'234567890',b接受数据到'123456789'

不会吧 :)
 
正像g622那样所说的情况,为什么呢?
 
看看你怎么写的,按道理应该不会
 
应该不会, 能看一看关键源码么?
 
不会吧,是不是你程序的事情,再好好检查一下。
 
一定是程序有问题。
 
源程序中:
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
……
mystream.Clear;
nmudp1.ReadStream(mystream);
setlength(st,numberbytes);
mystream.Read(st[1],numberbytes);
……
我debug时发现,如果发送方发送两次,为“1111”和“2222“
那么第一次datareceived时,numberbytes=4,st="1111"
第二次datareceived时,numberbytes=8,st="11112222"
为什么会这样?请大家帮帮忙,谢谢!!
 
若使用不频繁的话,你试着每次用时Create它然后Free,这样传递的数据绝对不会错。
另外用广播协议不是很保险,因为它不象Socket有一个“握手”的过程。
 
NMUDP我经常用,没发现过此类问题,你写的这段代码没问题,估计问题在其他地方,把
你的EMAIL告诉我,我发一个例子给你
 
看你的发送方是否做错了
把你的包含nmudp.sendstream的那一段贴出来看看
 
接受答案了.
 
后退
顶部