当前位置:  技术问答>linux和unix

第2个问题,还是网络,select()用法,到底哪里错了呢?

    来源: 互联网  发布时间:2016-07-12

    本文导语:  RT,还是传送文件的问题。服务器端读取文件"test.txt"发送到客户端,客户端接收文件后保存到"Test.txt"文件中。下面是服务器端和客户端连接成功以后的程序,大家帮忙检查下。运行结果不出来。 服务器端  while(1)    ...

RT,还是传送文件的问题。服务器端读取文件"test.txt"发送到客户端,客户端接收文件后保存到"Test.txt"文件中。下面是服务器端和客户端连接成功以后的程序,大家帮忙检查下。运行结果不出来。
服务器端
 while(1)
   {
     /* 服务器阻塞,直到客户程序建立连接 */
     len=sizeof(struct sockaddr_in);
     if((new_fd=accept(sockfd,(struct sockaddr*)&client_addr,&len))==-1)
      {
       fprintf(stderr,"Accept error:%sna",strerror(errno));
       exit(1);
       }
    /*  自己处理函数  */
    fp=fopen("test.txt","r+");
       if(fp==NULL) { printf("Fopen error."); exit(1);}
    while(fread(buffer,1,1,fp)!=EOF)
      {
       if((send(new_fd,buffer,strlen(buffer),0))==-1)
         { printf("Send error."); exit(1); }
       memset(buffer,0,strlen(buffer));
       }
     close(new_fd);
     close(fp);
    }
   close(sockfd);
   exit(0);

客户端程序
/*连接成功*/
  printf("n准备读取文件n");
  while(1)
   {
    /*把集合清空*/
    FD_ZERO(&readfds);
    /*把标准输入句柄0加入到集合中*/
    FD_SET(0,&readfds);
    maxfd=0;
    /*把当前句柄sockfd加入到集合中*/
    FD_SET(sockfd,&readfds);
    if(sockfd>maxfd)
      maxfd=sockfd;
    /*设置最大等待时间*/
    tv.tv_sec=1;
    tv.tv_usec=0;
    /*开始等待*/
  retval=select(maxfd+1,&readfds,NULL,NULL,&tv);
  if(retval==-1)
   {
     printf("将退出,select出错!%s",strerror(errno));
     break;
    }
 else
      if(retval==0)
        {
         /*如果超时,返回0,让它继续等*/
         continue;
        }
       else
        {
          if(FD_ISSET(sockfd,&readfds))
          bzero(buffer,MAXBUF+1);
          /*接收到的字符长度*/
          len=recv(sockfd,buffer,MAXBUF,0);
           if(len>0)
            {
              fp2=fopen("Test.txt","a+");
              fwrite(buffer,1,strlen(buffer),fp2);
             }
            else
              {
                if(len

    
 
 

您可能感兴趣的文章:

  • HTML <!DOCTYPE> 标签用法详解及如何解决<!DOCTYPE html>未声明时导致页面无效的问题
  • 原始问题,初学java,大家莫笑:appletviewer用法
  • makefile变量高级用法的问题
  • 请问关于find用法的问题
  • HP UNIX grep用法问题
  • [shell问题]用16进制 替换 普通字符串 awk 用法
  • 中断函数用法的问题
  • ctags的用法 问题
  • (SOS 在线等待,马上给分)Java -D用法问题
  • Checkbax[]的用法问题:为什么我的Checkbax[]不行呢?
  • linux 2.4内核中的ioctl系统调用的第三个参数的用法问题?
  • 绝对菜鸟问题:这是什么用法啊,看不太明白
  • 问个低级的问题:在windows里 有 char * strfilename1 =new char[255];strcpy(strfilename1,"C:\finger2.bmp")的用法,在纯java里怎么写
  • Class Properties的用法,一个有关配置文件的修改保存的菜鸟问题
  • jquery.post用法关于type设置问题补充
  • jquery.post用法之type设置问题
  • 自定义信号的signal用法问题
  • 各位好心人,帮我这个菜鸟看看这个问题(<jsp:plugin>用法问题)
  • 有关request.setAttribute()的用法的问题
  • 一个小问题:关于共享内存的例子中的一个用法
  • 菜鸟刚学jsp,对于查看数据库的用法还有点不明白?!100分送给解决问题的大侠。最好能给代码!!
  • ---初级问题,byte类型到底表示什么含义--
  • 初哥问题:JAVA和JSP到底是啥关系??????????
  • 一个好简单的问题---URL到底是什么?请详细解释一下
  • 菜鸟问题:Linux下 ioctl 函数到底在哪?
  • Connection reset by peer: JVM_recv in socket input stream read这个问题到底怎么解决??
  • 新手问题:Linux下nasm到底怎么用啊
  • 20分问一个简单问题:Linux一词到底是怎么读的?(谢决对此词读音也不明确的人做猜测!)
  • 简单问题!Indexof(value,int)到底是怎么回事?
  • 小弟问一个弱智问题:boot到底有什么用?我以前装得时候没有设置他也能用呀
  • 请教一个问题,JAVA到底用来做什么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 还是那个关于update的问题呀,还是解决不了呀?
  • swing的问题还是jbuiler的问题??
  • ./configure时,提示 missing /usr/.../version.h文件?是系统问题?还是安装程序的问题?
  • 还是关于消息框的问题 applet中的问题
  • 还是一个安装问题,周末一直为这个问题缠着
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 是delete的问题还是系统问题
  • 新手问题,在linux下c/c++开发是在图形界面下还是字符界面下进行?
  • 速急!!!还是有关于汉入问题!!!大哥们速帮忙,小弟在线等待!!!
  • 还是linux安装的问题
  • 问一个弱弱的问题,linux该怎么念?是理纳克斯还是留尼克斯?
  • nandflash 驱动出了问题还是内核配置出了问题?
  • 还是中文问题……sigh
  • 还是有问题啊,JSP查数据库!
  • 还是Oracle问题
  • 多播的问题,感觉还是有一点没理解
  • Linix下的Tomcat,为什么我的Applet找不到?在Windows环境下运行正常的,是我的路径问题,还是Tomcat 的设置问题?
  • 问题很简单,但是还是想问一下?
  • 还是gd升级的问题!!!
  • 还是老问题啊!!!高手吗?帮忙啊!LINUX 9.0安装时出错!
  • 修改配置真正解决php文件上传大小限制问题(nginx+php)
  • 数据库 iis7站长之家
  • 修改配置真正解决php文件上传大小限制问题(apache+php)
  • 小问题,急问题,重大问题!!!
  • sharepoint 2010中item.Update()和item.SystemUpdate 修改数据版本问题解决
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • 八个问题帮你快速了解Docker
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 错误:将'const x'作为'x'的'this'实参时丢弃了类型限定问题解决
  • 网页的编码问题!或者java的编码问题,由此引出一条解决中文问题的思路
  • nginx Windows版相关问题及使用说明


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3