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

UNIX网络编程下的IO 问题

    来源: 互联网  发布时间:2016-05-15

    本文导语:  程序是实现一个C/S模式下的文件传输,客户端先向服务器发送文件名,服务器收到后打开该文件将文件内容传给客户端  服务器核心代码如下  id_t pid;  if(pipe(f) 0){                       close(f[1]);     ...

程序是实现一个C/S模式下的文件传输,客户端先向服务器发送文件名,服务器收到后打开该文件将文件内容传给客户端 
服务器核心代码如下 
id_t pid; 
if(pipe(f) 0){      
                close(f[1]); 
                n=read(f[0],buf,sizeof(buf)); 
                buf[n]=''; 
                    if(n>0) 
                        write(fd,buf,n);        //fd 是网络套接字,这条语句是将收到的文件名发给客户端,经测试成功收到子进程传来的文件名,测试文件为“filea”保存在buf里,将其发给客户端 成功接受 
                FILE *fp; 
                    if((fp=fopen("filea","r"))==NULL)//问题就在这儿,如果我直接将文件名的字符串写成filea文件成功传输,但是如果我换成刚才接受的buf就不行了 
                        write(fd,"file open error",16); 
          while(fgets(buf, sizeof(buf), fp)) 
              { 
                buf[BUFFERSIZE]=''; 
                      cc=strlen(buf); 
                write(fd,buf,cc); 
              } 
            if(fp!=NULL) 
                  fclose(fp); 
            close(fd); 
            return; 

现在将客户端核心代码发出来: 
TCPftp(const char *host, const char *service,int fd) 


        char buf[BUFFERSIZE]; 
            char name[255]; 

int s, n; /* socket, read count */ 
      pid_t pid; 

s = connectTCP(host, service); 
            if((pid=fork())==0){//子进程从标准输入接受文件名,再发送给服务器 
            printf("input the file namen"); 
          fgets(name, sizeof(name), stdin); 
            name[sizeof(name)]=''; 
        write(s,name,sizeof(name)); 
                exit(0); 
            } 
        
      while((n=read(s,buf,sizeof(buf)))>0)//父进程接受文件信息 

        printf("data readingn"); 
          buf[n]=''; 
            fputs(buf,stdout); 
        write(fd,buf,strlen(buf)); 
      

exit(0); 



|
如果所料没错的话  是客户端接收文件名输入时,文件名后多一个 换行符,你可以自己output那个文件名,看看有没有换行  

    
 
 

您可能感兴趣的文章:

  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • UNIX网络编程卷1
  • 请问unix网络编程和linux网络有什么区别
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 求关于UNIX网络编程的好书 最好带项目的那种
  • Unix/Linux网络编程怎样来做一个项目?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • unix网络编程资料帮忙 大哥大姐进来瞧瞧啊
  • 学UNIX网络编程,看哪些书好?大家各抒已见~
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 看完了<unix网络编程>后
  • Unix/Linux网络编程可以用来做什么?一般从事什么样的职业?
  • 求助:linux/unix网络编程
  • 运行<<UNIX网络编程卷一>>中程序的错误?
  • 哪里有steven的UNIX网络编程源码?
  • 谁知道哪里有unix网络编程第一卷和第二卷电子版的下载?
  • 哪有unix下的c网络编程,如地址有效,我一次性给50分
  • 哪位好人能告诉我哪儿有《UNIX网络编程2版1卷》下载?????
  • 请问unix网络编程和linux网络有什么区别 iis7站长之家
  • 高级UNIX编程和UNIX环境高级编程是不是一本书
  • 想看linux内核源代码,另外手头上有一本《unix环境高级编程》,需要先把《unix环境高级编程》看完之后再看内核吗?
  • 我下载了UNIX环境高级编程的源码,可是打开时有错误,怎么才可以打开?还有谁有《UNIX环境高级编程(英文版)》的chm格式的ebook?
  • 想学linux下程序开发,不知道买哪本书好《UNIX环境高级编程》(中文第一版)还是《UNIX环境高级编程》(英文第二版)
  • unix编程与linux编程有什么区别?
  • [学习UNIX编程]初学UNIX编程,遇到一个小小的问题,烦劳大虾帮忙解惑,谢谢!
  • 看Unix环境高级编程,提到了V和bsd,有很多不同,但是没有提到Linux,请问linux跟BSD或者unix V 编程细节哪些不同的,特别是线程,进程,和socke
  • 都说《UNIX环境高级编程》好,对于学linux编程好不好?《Linux下的c编程》《嵌入式系统C编程》那个更适合初学者?各是那个出版社的?(
  • 我初学 Unix 编程,在看《Unix环境高级编程》时有一个问题请指教。
  • 我学&用Linux编程,手里有《UNIX环境高级编程》,看它行吗?
  • 谁有介绍UNIX下面函数的书啊,类似UNIX编程参考手册的东西
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • UNIX特急!!!digital unix问题,请专家快来!!!
  • 小问题, Unix 如何建立一个文件 ,unix 文件有后缀名吗
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 菜鸟问题:现在要做unix下的c/c+编程的几个问题?
  • unix下jdk配置问题及发布问题.
  • UNIX的一个初级问题
  • 关于UNIX文件I/O操作的问题,解决问题立即结贴
  • 新手,请教安装SCO Unix的问题
  • unix使用问题
  • 安装UNIX问题
  • Unix与windows的共存问题。
  • unix下发email问题
  • unix下编译问题
  • 一个关于安装SCO UNIX的问题
  • UNIX跟98安装问题
  • 关于unix系统安全问题!急!!!
  • linux和unix问题,望高手指教
  • 安装Unix时遇到的问题求教
  • sco unix5.06安装问题
  • 简单问题关于SCO UNIX
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • unix/Linux下c++ boost thread库读写锁介绍
  • 没有unix系统我如何学习unix
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • php将unix时间戳转换成字符串时间函数(date)
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • UNIX支持中文否,请推荐UNIX好书
  • SCO UNIX 5.0用软盘启动之后无法启动UNIX


  • 站内导航:


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

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

    浙ICP备11055608号-3