关于一个 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 ....
这个是什么原因造成的?如何解决呢?
请各位高手帮帮忙 展开
我加入到一个组播里~
对方是每隔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 ....
这个是什么原因造成的?如何解决呢?
请各位高手帮帮忙 展开
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询