关于一个 udp 接收的问题 delphi

问题是这样子的我加入到一个组播里~对方是每隔0.05s发一次数据包我用了死循环来接收,但是只有第一次收到包,之后每次都是什么也收不到,但是在recvfrom这一步程序也并... 问题是这样子的
我加入到一个组播里~
对方是每隔0.05s发一次数据包
我用了死循环来接收,但是只有第一次收到包,之后每次都是什么也收不到,但是在recvfrom这一步程序也并没有停下来如下
type
Byte_a=array[0..31] of Byte;
var
precvbuff:^byte_a;
recvbuff:byte_a;
...
...

i_loop:=1 ;
while i_loop>0 do
begin
precvbuff:=@recvbuff;
FillChar(recvbuff,SizeOf(recvbuff),0);
i:=SizeOf(addr1);
re:=recvfrom(skt1,precvbuff^,32,0,addr1,i); //第一次收到包以后第二次再收的话什么也没收到,程序还是继续往下
.
.
.
i_loop:=i_loop+1;
end;

recvfrom函数我记得收不到东西的话会停到这步~程序不会继续运行~收到后会接着运行~
我用单步调试看了下
头一次收到包是
48 48 85 ......
然后第二次接收到的全是0 0 0 0 ....
这个是什么原因造成的?如何解决呢?
请各位高手帮帮忙
展开
 我来答
清风菜
2010-07-06 · TA获得超过222个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:0
展开全部
先看re是否返回的长度 估计是第一次读完了 后面就没有数据了
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式