永发信息网

linux Ubuntu 中,写了一个简单的UDP协议,只用了sendto 与recvfrom ,出错了

答案:1  悬赏:80  手机版
解决时间 2021-03-11 10:09
  • 提问者网友:泪痣哥哥
  • 2021-03-10 16:02
在于开发板连接时,PC与板子可以互相PING通,但是UDP协议传送不过去数据,求帮忙部分程序 server端 setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,(char *)&on,sizeof(on)); server_sockaddr.sin_family=AF_INET; server_sockaddr.sin_port=htons(SERVPORT); server_sockaddr.sin_addr.s_addr=INADDR_ANY; bzero(&(server_sockaddr.sin_zero),8); int ret=bind(sockfd,(struct sockaddr*)&server_sockaddr,sizeof(server_sockaddr)); struct sockaddr_in clientAddr; int len =sizeof(clientAddr); while(1){ if((recvbytes=recvfrom(sockfd,buf,MAXDATASIZE,0,(struct sockaddr*)&clientAddr,&len))==-1)client端 setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,(char *)&on,sizeof(on)); serv_addr.sin_family=AF_INET; serv_addr.sin_port=htons(SERVPORT); serv_addr.sin_addr.s_addr=INADDR_ANY; bzero(&(serv_addr.sin_zero),8); for(i=0;i<MAXTRY;i++) { if((sendbytes=sendto(sockfd,"100",3,0,(struct sockaddr*)&serv_addr,sizeof(serv_addr))==-1))
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-03-10 16:25
在百度的编辑选项里面有可以写代码的,最起码代码格式整齐,容易阅读。

客户端的serv_addr.sin_addr.s_addr=INADDR_ANY这里使用服务器的固定地址试试。广播模式这个地址好像是用255.255.255.0的(局域网下)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯