急求助 recvfrom为什么一直阻塞在那里收不到数据
作snmp的agent,用udp接收数据,数据发出来,用tcpdump可以抓到,但是自己编
写的recvfrom代码却接收不到数据包 ,一直的阻塞在那里。
代码如下:
int main()
{
int res,re,rec,sradd;
char pbPara[1024];
struct sockaddr_in sr,form;
socklen_t formlen;
formlen=sizeof(form);
bzero(&sr,sizeof(sr));
res=socket(AF_INET,SOCK_DGRAM,0);
sr.sin_family=AF_INET;
sr.sin_addr.s_addr=inet_addr("192.168.12.206");
sr.sin_port=htons(161);
rec=bind(res,(structsockaddr*)&sr,sizeof(sr));
if(rec==-1)
{
perror("--- ser bind error---");
exit(1);
}
while(1)
{
bzero(pbPara,1024);
re=recvfrom(res,pbPara,1024,0,(struct sockaddr*)&form,&formlen
printf("--sucess--");
int n=0xFF;
printf("--mac:%.2X:%02X:%02X:%02X:%02X:%
02X==>""%.2X:%.2X:%.2X:%.2X:%.2X:%.2X--",pbPara[6]&n,
pbPara[7]&n,pbPara[8]&n,pbPara[9]&n,pbPara[10]&n,pbPara[11]
&n,pbPara[0]&n,pbPara[1]&n,
pbPara[2]&n,pbPara[3]&n,pbPara[4]&n,pbPara[5]&n);
printf("--ip:%d.%d.%d.%d==>%d.%d.%d.%d--",pbPara[28]&n,pbPara
[29]&n,pbPara[30]&n,pbPara[31]&n,
pbPara[32]&n,pbPara[33]&n,pbPara[34]&n,pbPara[35]&n);