免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1043 | 回复: 0
打印 上一主题 下一主题

求救,根据无双的udp套接字改编的程序出错! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-27 15:24 |只看该作者 |倒序浏览
我将无双关于udp套接字的程序改动了一下,其中一个为被动接受者,一个为发送者,运行下来接受者在规定时间内无法接收包,调试了一下发现识recvfrom错了,但不知道错在哪里,请各位帮忙看看。
代码如下:#include <netinet/in.h>;
#include <sys/types.h>;
#include <sys/socket.h>;
#include <sys/time.h>;
#define SA struct sockaddr
#define SERV_PORT 9877
#define MAXLINE 1024

int main(int argc,char **argv)
{
        int sockfd,count;
        struct sockaddr_in servaddr,cliaddr;

        sockfd=socket(AF_INET,SOCK_DGRAM,0);

        bzero(&servaddr,sizeof(servaddr));
        servaddr.sin_family=AF_INET;
        servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
        servaddr.sin_port=htons(SERV_PORT);

        bind(sockfd,(SA *)&servaddr,sizeof(servaddr));
        count=udp_recv(sockfd,(SA *)&cliaddr,sizeof(cliaddr));
        printf("%d\n",count);
}

int udp_recv(int sockfd,SA *pcliaddr,socklen_t clilen)
{
        int n=0,ti=0;
        socklen_t len;
        char msg[MAXLINE];
        struct timeval t1, t2;
        struct timezone tz;

        (void)gettimeofday(&t1, &tz);
        while(ti<60)
        {
                (void)gettimeofday(&t2, &tz);
                ti=(int)(t2.tv_sec-t1.tv_sec);
                len=clilen;
                recvfrom(sockfd,msg,MAXLINE,0,pcliaddr,&len);
                n=n+1;
        }
        return n;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP