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

继续请教,网络编程问题,服务器端读取后文件里没数据? 大虾们看看。。在线等。

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

    本文导语:  /*   客户端程序client0.c */   /*连接成功*/   fp=fopen("test.txt","r");   if(fp==NULL) { printf("Open Error."); exit(1);}   memset(szStr,0,1024);   if(fread(szStr,1,1024,fp))    {     printf("%s",szStr);exit(1);     }   if(send(sockfd,szStr,strle...

/*   客户端程序client0.c */
  /*连接成功*/
  fp=fopen("test.txt","r");
  if(fp==NULL) { printf("Open Error."); exit(1);}
  memset(szStr,0,1024);
  if(fread(szStr,1,1024,fp))
   {
    printf("%s",szStr);exit(1);
    }
  if(send(sockfd,szStr,strlen(szStr),0)==-1)
   {
     fprintf(stderr,"Write Error:%sn",strerror(errno));
    }

  close(fp);
  /* 结束通讯 */
  close(sockfd);
  exit(0);

/*  服务器端程序server0.c */
while(1)
 {
          /* 服务器阻塞,直到客户程序建立连接 */
  sin_size=sizeof(struct sockaddr_in);
  if((new_fd=accept(sockfd,(struct sockaddr*)(&client_addr),&sin_size))==-1)
  {
   fprintf(stderr,"Accept error:%sna",strerror(errno));
   exit(1);
  }
 /* 可以在这里加上自己的处理函数 */
   if(nbytes=(recv(new_fd,buffer,1024,0))==-1)
    {
      fprintf(stderr,"Read Error:%sn",strerror(errno));
      exit(1);
    }
   buffer[nbytes]='';                                      
   printf("%s",buffer);                                                   //运行后这句没显示出来呢?
   fp2=fopen("Test.txt","w+");                                 //运行后有创建新的文件Test.txt但是没内容
   fwrite(buffer,sizeof(char),strlen(buffer),fp2);
/* 这个通信已经结束*/
     close(new_fd);
     close(fp2);
/* 循环下一个*/
  }
  close(sockfd);
  exit(0);


刚才一个帖子是客户端服务器端读取文件,然后将内容传给客户端,客户端保存在文件里。已经弄好了。
这个程序是服务器端与客户端连接成功后,客户端这边读取文件test.txt里面的内容,然后发送给服务器端,服务器端接收到以后,fp2创建新文件Test.txt,将读取到的内容fwrite存入文件里。运行后为什么Test.txt里面的内容是空的呢?没接收到客户端发送过来的数据。难道是执行顺序先后的问题? 我看了书上介绍,明明可以connect以后客户端给服务器端发请求,然后服务器端recv处理的。。
上面这个是连接好后2边的程序,我把完整程序发到回复里面。。。。大虾看看。

在线等哈。。

|
不会是客户端堵塞住了吧。
你要学习一下怎么用gdb来调试了,要不然这样一条一条的回复我就要累死了。

你确认一下客户端执行过了send()么。是不是在connect()时候就停住了

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教下:是否有方法 在vim中执行make命令的同时继续编辑和查看文件呢?
  • 安装mandrake90,请教如何继续……
  • 继续请教机器死机问题
  • 请教后台守护进程退出时侦听端口继续存在的问题
  • XP和FC4双系统,现在要重装XP,可是放进安装盘后没法继续,请教大家如何解决。
  • 请教,如何继续学下去?
  • 继续请教makefile问题!
  • 继续请教..VI怎么样把别人程序复制过来呢?#include<windows.h>? 在线等,超急的!
  • makefile 的问题 继续请教
  • CentOS下PHP安装完成后继续安装GD扩展库
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • 继续继续RAID5问题
  • 停在断点后AppletViewer不能再继续了……
  • make过程中还能继续?
  • 如何让一个daemon线程 重启后来继续运行呢?
  • 编译失败后如何再继续编译
  • 继续给分
  • 怎样使一个线程暂停,还有继续
  • 发现一个有趣的东西,继续散分。
  • suse linux 网络管理器小程序找不到所需的资源。无法继续。
  • sh脚本 用户退出后继续执行
  • 接前面的《继续讨论文件目录处理的,高手指点!!》 iis7站长之家
  • 土土的问,gdb中如何从一个断点继续执行到下一个断点?(不是单步)
  • 接前面的《继续讨论文件目录处理的,高手指点!!》
  • 急!急!急!继续提问!简单问题!
  • 直到线程执行完后,才让程序继续执行下去,怎么实现??
  • 继续问:使用Motif库的OverrideShell创建的窗口怎么放在屏幕的中央?
  • 继续散分:代码管理助手1.0
  • 请问:有没有什么库函数实现 “按任意键继续”?
  • 求一个沉睡10秒后继续运行简单程序


  • 站内导航:


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

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

    浙ICP备11055608号-3