永发信息网

为什么我的C语言程序收不到广播包。而且recvfrom的返回值是-1(出错)

答案:2  悬赏:20  手机版
解决时间 2021-02-04 07:39
#include
#include
#pragma comment(lib,"ws2_32.lib")

main()
{
FILE * fp;
WSADATA wd;
int retval;
SOCKET sock=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
struct sockaddr_in saddr;
BOOL bConditionalAccept=TRUE;

struct sockaddr_in saddrsrv;
char heading[3];
char buffer[5000];
int size;

fp=fopen(".\\record.txt","a+");

if((WSAStartup(MAKEWORd(1,1),&wd))==SOCKET_ERROR)
{
printf("Error occured when loading the WINSOCK_DLL...");
exit(-1);
}
WSAStartup(MAKEWORd(2,2),&wd);
saddrsrv.sin_family=AF_INET;
saddrsrv.sin_addr.s_addr=INADDR_BROADCAST;
saddrsrv.sin_port=htons(5050);
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(char FAR *)&bConditionalAccept,sizeof(BOOL));
saddr.sin_family=AF_INET;
saddr.sin_port=htons(5050);
saddr.sin_addr.S_un.S_addr=0;
bind(sock,(struct sockaddr *)&saddr,sizeof(saddr));
size=sizeof(saddrsrv);

for(;;)
{
retval=recvfrom(sock,buffer,sizeof(buffer),0,(struct sockaddr *)&saddrsrv,&size);
if(retval==SOCKET_ERROR)
{
continue;
}
fprintf(fp,"%s",buffer);

printf("%s",buffer);
}
}
最佳答案
,如果非阻塞则会立即返回。
全部回答
期待看到有用的回答!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
竞舞艺培训中心地址在哪,我要去那里办事
男,52岁。上腹痛伴进行性黄疸1个月,感乏力
格力锐扬两匹的柜机怎么样
陕西有什么汽车制造厂
阳光午托辅导地址好找么,我有些事要过去
寻南财跳跳门视频
2016年管道局三区四区拆迁吗
吉美龙便利店这个地址在什么地方,我要处理点
枝江王500毫升10年52度要多少钱
如果难度10为满分,请问初级会计职称、中级会
劳动桥方圆文化学校地址在什么地方,想过去办
如何修改家园2初始资金
仿写句子:天寒地冻,却漫天飞舞着大朵大朵的
如何处理多线程并发时的日志追踪
及时雨书法屋地址在什么地方,我要处理点事
推荐资讯
为什么我玩游戏都延迟,而看电影和下载速度都
2元超市这个地址在什么地方,我要处理点事
魅惑美甲纹身店地址在哪,我要去那里办事
刚安装的盗版Win7,出来文字(剩余28天可以激
y=根号下(x^3(x^2+1)^lnx/e^x(x+1)^x^2)的导
请结合漫画所反映的现象回答下列问题:(1)漫画
甘油可以当精华水或是精华液用吗
缤果时光地址在哪,我要去那里办事
谁那有鸭蛋我要大量收购
电池修复(医生升压)软件原理 是否有效 对电
【绉】文绉绉中的“绉绉”是什么意思?作业上
我的惠普台式电脑用小米随身wifi发射的无线惠
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?